Python 错误';QuerySet';对象没有属性';订户';
我在一个名为Book的模型上有一个Python 错误';QuerySet';对象没有属性';订户';,python,django,django-orm,Python,Django,Django Orm,我在一个名为Book的模型上有一个一般关系: subscribers = GenericRelation(Subscriber) 因此,如果我想找到一本书的所有订户,我会这样做: self.subscribers.all() 然而,当我试图对一组书籍进行同样的查询时: subscribers = queryset.subscribers.all() 我得到一个错误: 'QuerySet' object has no attribute 'subscribers' 为什么??可以这样做吗?
一般关系
:
subscribers = GenericRelation(Subscriber)
因此,如果我想找到一本书的所有订户,我会这样做:
self.subscribers.all()
然而,当我试图对一组书籍进行同样的查询时:
subscribers = queryset.subscribers.all()
我得到一个错误:
'QuerySet' object has no attribute 'subscribers'
为什么??可以这样做吗?订户关系在模型上,而不是在查询集上。您可以迭代查询集,并获取每个实例的订阅者
for book in queryset:
subscribers = book.subscribers.all()
如果要获取已订阅queryset中任何书籍的所有订阅者,需要设置相关的\u query\u name
(注意,这仅适用于Django 1.7+)
然后,您可以通过以下方式获得queryset的订阅服务器:
subscribers = Subscriber.objects.filter(books__in=queryset)
有关更多信息,请参阅上的文档。订阅者关系在模型上,而不是查询集上。您可以迭代查询集,并获取每个实例的订阅者
for book in queryset:
subscribers = book.subscribers.all()
如果要获取已订阅queryset中任何书籍的所有订阅者,需要设置相关的\u query\u name
(注意,这仅适用于Django 1.7+)
然后,您可以通过以下方式获得queryset的订阅服务器:
subscribers = Subscriber.objects.filter(books__in=queryset)
有关更多信息,请参阅上的文档。订阅者仅按本书提供。如果要获取(查询)一组书籍的所有可能订阅者,则需要使用以下查询检索它们:
Subscriber.objects.filter(book__in=queryset)
您可能需要添加一个
.distinct()
,以过滤出重复的内容。订阅者只能按本书提供。如果要获取(查询)一组书籍的所有可能订阅者,则需要使用以下查询检索它们:
Subscriber.objects.filter(book__in=queryset)
您可能需要添加一个
.distinct()
来过滤重复项。谢谢,这是有意义的。谢谢,这是有意义的。请注意,因为它是一个泛型关系,所以您需要设置相关的查询名称才能起作用。请注意,因为它是一个泛型关系,您需要先设置相关的\u查询\u名称
,然后才能执行此操作。