Django"民意调查"教程 - 从一个民意调查转移到另一个民意调查



所以我已经完成了 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 %}

最新更新