Я новичок в Python & Django, и я следую руководству по приложению, которое есть в документации Django.
Я создал маршруты, и все работает, проблема, с которой я столкнулся, заключается в том, что я хочу показать, какой вариант опроса пользователь выбрал на странице результатов. (Страница результатов в настоящее время показывает только общий результат опроса, который я хочу сохранить, но я также хочу показать выбранный вариант в дополнение к этому.) Пользователю не нужно входить в систему, поэтому я не создал внешний ключ для t ie пользователя для его голосования.
Я нашел способ добавить выбранный первичный ключ выбора в URL, но, поскольку я использую представления на основе классов, я не уверен, как чтобы получить это значение в представлении результатов.
urls.py
...
app_name = "polls"
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
path('<int:pk>/results/<int:choice_id>', views.ResultsView.as_view(), name='results'),
path('<int:question_id>/vote/', views.vote, name='vote'),
]
...
views.py
def vote(request, question_id):
question = get_object_or_404(Question, pk=question_id)
try:
selected_choice = question.choice_set.get(pk=request.POST['choice'])
... #removed the test part
else:
selected_choice.votes += 1
selected_choice.save()
return HttpResponseRedirect(reverse('polls:results', args=(question.id, selected_choice.id)))
class ResultsView(generic.DetailView):
model = Question
template_name = 'polls/results.html'