Python 从模板中的相关对象获取有限的随机项?
我有一个作者模型,每个模型分配了许多书。在我的书中,model有:author=models.foreignkey作者 在我的页面中,我列出了我所有的作者,在每个作者下面我想显示5本随机的书 在我看来,这仅仅通过模板是可行的还是必须这样做?我的意思是限制结果并随机获得它们 我目前只将作者传递给模板,如下所示:a=Author.objects.all 请告知。您有两种选择: 以你的观点去做: 此查询返回作者a的5本随机书籍 创建一个包含作者并随机返回5本书的 创建自定义标记:Python 从模板中的相关对象获取有限的随机项?,python,django,Python,Django,我有一个作者模型,每个模型分配了许多书。在我的书中,model有:author=models.foreignkey作者 在我的页面中,我列出了我所有的作者,在每个作者下面我想显示5本随机的书 在我看来,这仅仅通过模板是可行的还是必须这样做?我的意思是限制结果并随机获得它们 我目前只将作者传递给模板,如下所示:a=Author.objects.all 请告知。您有两种选择: 以你的观点去做: 此查询返回作者a的5本随机书籍 创建一个包含作者并随机返回5本书的 创建自定义标记: from myapp
from myapp.models import Book
def randbooks(author):
return {'books': Book.objects.filter(author=author).order_by('?')[:5]}
register.inclusion_tag('book_listing.html')(randbooks)
创建一个模板以显示标题book_listing.html:
您有两个选择:
以你的观点去做:
此查询返回作者a的5本随机书籍
创建一个包含作者并随机返回5本书的
创建自定义标记:
from myapp.models import Book
def randbooks(author):
return {'books': Book.objects.filter(author=author).order_by('?')[:5]}
register.inclusion_tag('book_listing.html')(randbooks)
创建一个模板以显示标题book_listing.html:
如果您尝试在模板中执行此操作,请注意一个好主意。这将违反MVC。您通常应该通过视图进行查询,并将数据传递给模板以获得更好的性能。如果您尝试在模板中执行此操作,请注意一个好主意。这将违反MVC。您通常应该通过视图进行查询,并将数据传递给模板以获得更好的性能。
<ul>
{% for book in books %}
<li>{{ book }}</li>
{% endfor %}
</ul>
{% for author in a %}
{% randbooks author %}
{% endfor %}