【发布时间】:2018-09-01 22:02:53
【问题描述】:
作为视图的函数知道问题,但类不知道(args,kwargs 来自 url,空,post 方法只有选择,但没有问题)。 两者都有效,但为了添加检查,我想知道如何在课堂上提问。它的 init 或 get_redirect_url 或 request 里面没有像 question_id 这样的东西
url.py
from django.urls import path
from . import views
app_name = 'polls'
ulrpatterns=[
path('<int:question_id>/vote/', views.vote, name='vote'),
path('<int:pk>/vote0/', views.vote0.as_view(), name='vote0'),
]
views.py
class vote0(generic.base.RedirectView):
pattern_name = 'polls:results'
def get_redirect_url(self, *args, **kwargs):
selected_choice = get_object_or_404(Choice, pk(self.request.POST['choice']))
selected_choice.votes +=1
selected_choice.save()
return super().get_redirect_url(*args, **kwargs)
def vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
selected_choice = question.choice_set.get(pk=request.POST['choice'])
selected_choice.votes += 1
return HttpResponseRedirect(reverse('polls:results', args=(question.id,)))
【问题讨论】:
-
命名的在
**kwargs,或者你可以使用self.kwargs,和/或self.args。
标签: python django generics view