为了账号安全,请及时绑定邮箱和手机立即绑定

Django:reverse_lazy()与通用视图

Django:reverse_lazy()与通用视图

ITMISS 2022-09-13 15:17:29
我有两个通用视图(“创建视图”和“详细信息视图”)。在我的创建视图中,保存我的窗体后,我想重定向到详细信息视图以显示我新创建的对象。但是发生了一个错误:Reverse for 'questions.views.DisplayQuestions' not found. 'questions.views.DisplayQuestions' is not a valid view function or pattern name.如何通过reverse_lazy调用我的详细信息视图?.视图:class DisplayQuestions(ListView):    model = Question    context_object_name = "all_questions"    template_name = "questions/home.html"    def get_queryset(self):        return Question.objects.order_by(self.kwargs['display_type'])@method_decorator(login_required, name='dispatch')class CreateQuestion(CreateView):    model = Question    template_name = 'questions/nouveau.html'    form_class = QuestionForm    def get_success_url(self):        return reverse_lazy(DisplayQuestion) # <-- This doesn't work !!!    def form_valid(self, form):        self.object = form.save(commit=False)        self.object.profil = self.request.user.profil        self.object = form.save()        return HttpResponseRedirect(self.get_success_url()).网址:urlpatterns = [    url(r'^nouveau$', views.CreateQuestion.as_view()),    url(r'(?P<display_type>\w+)', views.DisplayQuestions.as_view()),].形式:class QuestionForm(forms.ModelForm):    class Meta:        model = Question        fields = ('question','categorie',)
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

您应该将配置中的每个URL命名为:


urlpatterns = [

    url(r'^nouveau$', views.CreateQuestion.as_view(), name='create-question'),

    url(r'(?P<display_type>\w+)', views.DisplayQuestions.as_view(), name='display-question'),

]

然后访问它,


return reverse_lazy('display-question', kwargs={'display_type': 'your-display-type-value'})


查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号