gpt4 book ai didi

python - DetailView 迭代反向 ManyToMany 对象

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:33 27 4
gpt4 key购买 nike

以 Django 为例进行查询:

class Author(models.Model):
name = models.CharField(max_length=50)
...
def __str__(self):
return self.name

class Entry(models.Model):
...
authors = models.ManyToManyField(Author)

我想要一个作者 DetailView,其中包含该作者的条目列表。到目前为止我所拥有的:

class AuthorDetailView(DetailView):
model = Author

def get_context_data(self, **kwargs):
context = super(AuthorDetailView, self).get_context_data(**kwargs)
context['entries'] = Entry.objects.filter(
authors__name=self.object.name)
return context

在我的模板中:

{% for entry in entries %}

{% endfor %}

我也宁愿不按名字过滤,而是按特定作者过滤,因为名字可能不是唯一的。

最佳答案

你可以使用反向关系

context['entries'] = self.object.entry_set.all()

这会为您提供该 Author 的所有 Entry 对象。

编辑:

为什么要使用 author__name?您可以直接按对象过滤:

context['entries'] = Entry.objects.filter(authors=self.object)

关于python - DetailView 迭代反向 ManyToMany 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com