我有一个作者模型,每个都分配了许多书。在我的图书模型中,我有:author = models.ForeignKey(Author)
在我的页面中,我列出了我拥有的所有作者以及每位作者希望展示5本随机书籍的作者。
仅通过模板是否可行,或者我必须在我看来这样做? 我的意思是限制结果并随机获取结果。
我目前只将作者传递给模板,如下所示:a = Author.objects.all()
请告知。
答案 0 :(得分:4)
您有两种选择:
在您看来这样做:
此查询“为作者a
返回5本随机图书”
random_books = Book.objects.filter(author=a).order_by('?')[:5]
创建一个custom tag,其中包含作者并随机返回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
):
<ul>
{% for book in books %}
<li>{{ book }}</li>
{% endfor %}
</ul>
在模板中使用它,如下所示:
{% for author in a %}
{% randbooks author %}
{% endfor %}