朋友们,我想知道如何在django模板中显示两个不同查询集的结果。
我的views.py如下:
def index(request):
answers = Answer.objects.filter(user=request.user)
questions = Question.objects.filter(user=request.user)
return render(request,"welcome/index.html",locals())
和我的模板是:
{% extends "layout.html" %}
{% block content %}
{% for q in questions %}
{{ q.title }}
{% endfor %}
{% for a in answers %}
{{ a.answer }}
{% endfor %}
{% endblock %}
但正如预期的那样,先列出问题然后再回答问题。我想随机显示问题和答案。答案和问题可以在模板中以任何顺序出现。我怎么做这个,朋友?
答案 0 :(得分:2)
使用shuffle
功能?
import random
def index(request):
answers = Answer.objects.filter(user=request.user)
questions = Question.objects.filter(user=request.user)
mixed = list(answers) + list(questions)
random.shuffle(mixed)
return render(request,"welcome/index.html",locals())
现在,您有一个混合的mixed
列表。你可以循环它。您可以使用以下方法检查模板中的类型:
{% for item in mixed %}
{% if item.answer %}
{{ item.answer }}
{% else %}
{{ item.title }}
{% endif %}
{% endfor %}
(只需确保问题没有answer
字段)