错误 'QuerySet' 对象没有属性 'subscribers'
Error 'QuerySet' object has no attribute 'subscribers'
我有一个 GenericRelation
在一个名为 Book 的模型上:
subscribers = GenericRelation(Subscriber)
所以如果我想找到一本书的所有订阅者,我会这样做:
self.subscribers.all()
但是,当我尝试对图书查询集执行相同操作时:
subscribers = queryset.subscribers.all()
我收到错误:
'QuerySet' object has no attribute 'subscribers'
为什么?这能做到吗?
subscribers
关系在模型上,而不是在查询集上。您可以遍历查询集,并获取每个单独实例的订阅者。
for book in queryset:
subscribers = book.subscribers.all()
如果你想获取所有订阅了查询集中任何书籍的订阅者,你需要设置related_query_name
(注意,这只适用于Django 1.7+)。
class Book(models.Model):
subscribers = GenericRelation(Subscriber, related_query_name=books)
然后您可以通过以下方式获取查询集的订阅者:
subscribers = Subscriber.objects.filter(books__in=queryset)
有关详细信息,请参阅 reverse generic relations 上的文档。
订阅者只能以每本书为基础。如果你想获得一组(查询)书籍的所有可能订阅者,你需要使用如下查询检索它们:
Subscriber.objects.filter(book__in=queryset)
您可能想要添加 .distinct()
以过滤掉重复项。
我有一个 GenericRelation
在一个名为 Book 的模型上:
subscribers = GenericRelation(Subscriber)
所以如果我想找到一本书的所有订阅者,我会这样做:
self.subscribers.all()
但是,当我尝试对图书查询集执行相同操作时:
subscribers = queryset.subscribers.all()
我收到错误:
'QuerySet' object has no attribute 'subscribers'
为什么?这能做到吗?
subscribers
关系在模型上,而不是在查询集上。您可以遍历查询集,并获取每个单独实例的订阅者。
for book in queryset:
subscribers = book.subscribers.all()
如果你想获取所有订阅了查询集中任何书籍的订阅者,你需要设置related_query_name
(注意,这只适用于Django 1.7+)。
class Book(models.Model):
subscribers = GenericRelation(Subscriber, related_query_name=books)
然后您可以通过以下方式获取查询集的订阅者:
subscribers = Subscriber.objects.filter(books__in=queryset)
有关详细信息,请参阅 reverse generic relations 上的文档。
订阅者只能以每本书为基础。如果你想获得一组(查询)书籍的所有可能订阅者,你需要使用如下查询检索它们:
Subscriber.objects.filter(book__in=queryset)
您可能想要添加 .distinct()
以过滤掉重复项。