django'民意测验'教程 - 从一个民意调查转到另一个民意调查

时间:2014-01-25 07:30:48

标签: python django

所以我已经完成了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”的调整。

调整是什么? 谢谢,

2 个答案:

答案 0 :(得分:1)

如果您的Poll对象具有不可为空的DateField或DateTimeField:

pub_date = models.DateTimeField(...)

然后,您可以使用django automatically addedget_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 %}