我需要获得所有作者及其出版物的清单
{% for author in authors %}
{{ author.name }}
{% for publish in publishes %}
{{ publish.title }}
{% endfor %}
{% endfor %}
views.py:
def authors_list(request):
authors = Author.objects.all()
publishes = Group.objects.filter(author=author)
return render(request, 'app/authors_list.html', {'authors': authors,'publishes': publishes})
通过这种方式发布'没有定义。
答案 0 :(得分:0)
问题在于,在您尝试定义publishes
时未定义publishes
这是误导性的,但错误标记如下:
publishes = Group.objects.filter(publishes=publishes)
^^^^^^^^^
我希望它可以帮助您找到问题。
修改后:
publishes = Group.objects.filter(author=author)
^^^^^^
我认为您需要为@propery
:
Author
阅读this
答案 1 :(得分:0)
假设你在Group模型中有一个ForeignKey,你可以这样做,
{% for author in authors %}
{{ author.name }}
{% for publish in author.group_set.all() %}
{{ publish.title }}
{% endfor %}
{% endfor %}
您可以使用相关名称访问作者的群组。
为此,您还可以为方便起见定义related_name。 你可以添加,
author = models.ForeignKey(Author, related_name='groups')
在您的群组模型中。
如果您已添加related_name,则可以调用related_objects,如
{% for publish in author.groups.all() %}
在你的模板中。
然后更改您的观点,
def authors_list(request):
authors = Author.objects.all()
return render(request, 'app/authors_list.html', {'authors': authors})