实训项目第三周1

xiaoxiao2021-02-27  151

这次我们对问题列表和论坛模块功能进行了完善和实现,

这是问题回复的代码

# -*- coding: utf-8 -*-   from __future__ import unicode_literals      from django.shortcuts import get_object_or_404, render, render_to_response      # Create your views here.   from django.http import HttpResponseRedirect, HttpResponse   from django.urls import reverse   from django.utils import timezone   from django.template import loader, RequestContext   from django.views import generic   from django import forms      from .models import Problem, User, SubmitCode, AcceptedCode, Discussion, Response         class ResponseForm(forms.Form):       text = forms.CharField(widget=forms.Textarea)       code = forms.CharField(widget=forms.Textarea)       problem list page   class ProblemsView(generic.ListView):       model = Problem       template_name = 'judgeOL/problems.html'       context_object_name = 'problem_list'         @staticmethod       def get_problems(page_num):           if page_num > 20 or page_num < 0:               page_num = 0           a = page_num*50           b = a+50           return Problem.objects.all()[a:b]         # coding page , submit code , get result   class CodingView(generic.TemplateView):       template_name = 'judgeOL/coding.html'          def get_context_data(self, **kwargs):           context = super(CodingView, self).get_context_data(**kwargs)           context['problem_id'] = self.kwargs['problem_id']           return context      class EditView(generic.TemplateView):       template_name = 'judgeOL/edit.html'          def get_context_data(self, **kwargs):           context = super(EditView, self).get_context_data(**kwargs)           context['problem_id'] = self.kwargs['problem_id']           return context  

def new_response(request, problem_id, discussion_id):       if request.method == 'GET':           response_form = ResponseForm()           return HttpResponseRedirect(reverse('judgeOL:responses',                                                   kwargs={'problem_id': problem_id, 'discussion_id': discussion_id}))       else:           response_form = ResponseForm(request.POST)           if response_form.is_valid():               pub_text = response_form.cleaned_data['text']               pub_code = response_form.cleaned_data['code']               user_id = request.session['user_id']               Response.objects.create(discussion_id=discussion_id, user_id=user_id, pub_text=pub_text,                                       pub_code=pub_code, pub_date=timezone.now(), vote_count=1)               return HttpResponseRedirect(reverse('judgeOL:responses',                                                   kwargs={'problem_id': problem_id, 'discussion_id': discussion_id}))

转载请注明原文地址: https://www.6miu.com/read-15639.html

最新回复(0)