作者的 django 条目

django entries of author

我需要获取所有作者及其出版物的列表

{% 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})

这种方式 'publishes' 未定义。

问题是在您尝试定义 publishes

时未定义 publishes

它具有误导性,但错误标记如下:

publishes = Group.objects.filter(publishes=publishes)
                                           ^^^^^^^^^

希望能帮助您找到问题

编辑后:

publishes = Group.objects.filter(author=author)
                                        ^^^^^^

我想你需要为 Author 定义一个 @propery:

阅读this

假设您在组模型中有一个外键,您可以这样做,

{% 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})