所以我已经完成了 django 教程,但我不喜欢它的一件事是,当你回答一个时,你不能点击进入下一个民意调查。例如,如果您的localhost:8000/polls/
页面如下所示:
red or white?
black or blue?
Who is your favourite Beatle?
然后我希望能够回答第一次民意调查(红色或白色),然后从通常显示再次投票的按钮转到"黑色或蓝色"问题。
我对 python 和 django 很陌生,但我猜它只需要在polls/results.html
中的{% url 'polls:detail' poll.id %}">Vote again?
语句中调整"+1"之类的调整。
有什么调整? 谢谢
如果 Poll 对象具有不可为空的日期字段或日期时间字段:
pub_date = models.DateTimeField(...)
然后,您可以使用 django 自动添加的get_next_by_FOO
方法根据该日期时间获取下一个对象。
然后,您可以在模板中拥有:
{% with next=object.get_next_by_pub_date %}
{% if next %}
<a href="{% url 'polls:detail' next.id %}">next</a>
{% endif %}
{% endwith %}
在视图中results
您可以添加一个变量next_question
如下:
next_question = None
try:
next_question = Question.objects.filter(id__gt=question_id)[:1][0]
except IndexError:
pass
在模板中:
{% if next_question %}
<a href="{% url 'polls:detail' next_question.id %}">Next question</a>
{% endif %}