Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从模板中的相关对象获取有限的随机项?_Python_Django - Fatal编程技术网

Python 从模板中的相关对象获取有限的随机项?

Python 从模板中的相关对象获取有限的随机项?,python,django,Python,Django,我有一个作者模型,每个模型分配了许多书。在我的书中,model有:author=models.foreignkey作者 在我的页面中,我列出了我所有的作者,在每个作者下面我想显示5本随机的书 在我看来,这仅仅通过模板是可行的还是必须这样做?我的意思是限制结果并随机获得它们 我目前只将作者传递给模板,如下所示:a=Author.objects.all 请告知。您有两种选择: 以你的观点去做: 此查询返回作者a的5本随机书籍 创建一个包含作者并随机返回5本书的 创建自定义标记: from myapp

我有一个作者模型,每个模型分配了许多书。在我的书中,model有:author=models.foreignkey作者

在我的页面中,我列出了我所有的作者,在每个作者下面我想显示5本随机的书

在我看来,这仅仅通过模板是可行的还是必须这样做?我的意思是限制结果并随机获得它们

我目前只将作者传递给模板,如下所示:a=Author.objects.all

请告知。

您有两种选择:

以你的观点去做:

此查询返回作者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:

您有两个选择:

以你的观点去做:

此查询返回作者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 %}