Джанго: Как увеличить URL? - PullRequest
0 голосов
/ 10 мая 2018

Как увеличить URL? У меня есть приложение для опроса, пользователь может голосовать каждый раз с вопросом «да» и «нет». Я хотел бы знать, как перенаправить пользователя к следующему вопросу после того, как пользователь проголосует за фактический вопрос. Допустим, у меня есть 10 вопросов, сохраненных в базе данных. Я не хочу показывать все 10 вопросов на одной странице. Я читал о том, как сделать это с помощью ajax, а также читал про передачу идентификатора вопроса в URL. Если кто-нибудь может уточнить это для меня. Спасибо!! Я попробовал это.

 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 голосов
/ 10 мая 2018

Я думаю, вы можете просто добавить <int:question_id> к вашим poll_views URL-адресам.

 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 вы можете получить идентификатор вопроса из URL (kwargs) и получить свой объект вопроса, добавив +1 к номеру голосования.

Кроме того, вам не нужно добавлять user_id в URL. Вы можете получить текущего аутентифицированного пользователя в шаблоне и представлениях по request.user. Таким образом, ваш URL может быть

 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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...