所以我已经完成了django教程,但我不喜欢的一件事是当你回答一个时你无法点击进入下一个民意调查。例如,如果您的localhost:8000/polls/
页面如下:
red or white?
black or blue?
Who is your favourite Beatle?
然后我希望能够回答第一个民意调查(红色或白色),然后从那个通常再次投票的按钮转到“黑色或蓝色”问题。
我对python和django很新,但我猜它只需要在{% url 'polls:detail' poll.id %}">Vote again?
的{{1}}语句中进行类似“+1”的调整。
调整是什么? 谢谢,
答案 0 :(得分:1)
如果您的Poll对象具有不可为空的DateField或DateTimeField:
pub_date = models.DateTimeField(...)
然后,您可以使用django automatically added的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 %}
答案 1 :(得分:0)
在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 %}