Django:如何增加URL?

时间:2018-05-10 01:20:46

标签: django url

如何增加网址? 我有一个投票应用程序,用户每次都可以在“是”和“否”的问题中投票。 我想知道在用户投票给实际问题后如何将用户重定向到下一个问题。总的来说,我在数据库中保存了10个问题。 我不想在同一页面中显示所有10个问题。 我已经阅读了关于使用ajax创建它的内容,并且我确实阅读了有关在URL中传递问题ID的信息。如果有人能为我澄清它。谢谢!! 我试过这个。

 path('question/<int:question_id>', views.QuestionVoteView.as_view(), name='question')

这一个。

 path('question/', views.QuestionListView.as_view(), name='question')

并就实际问题进行投票。

 url(r'^nope/(?P<user_id>\d+)$', poll_views.nope, name='nope')
 url(r'^yep/(?P<user_id>\d+)$', poll_views.yep, name='yep')

1 个答案:

答案 0 :(得分:0)

我认为您只需将<int:question_id>添加到poll_views网址即可。

 url(r'^nope/(?P<user_id>\d+)/(?P<question_id>\d+)/$', poll_views.nope, name='nope')
 url(r'^yep/(?P<user_id>\d+)/(?P<question_id>\d+)/$', poll_views.yep, name='yep')

views中,您可以从网址(kwargs)获取问题ID并获取您的问题对象,为投票编号添加+1。

另外,您不必在网址中添加user_id。您可以在模板和模板中获得当前经过身份验证的用户request.user的观点。所以,你的网址可以是

 url(r'^nope/(?P<question_id>\d+)/$', poll_views.nope, name='nope')
 url(r'^yep/(?P<question_id>\d+)/$', poll_views.yep, name='yep')

并使用request.user找到当前用户。

  

我发现您同时使用url()path()。你用什么django版本?如果是2.0,则必须使用path(),如果1​​.xx使用url()