【发布时间】:2015-06-04 04:58:46
【问题描述】:
我使用的是 Django 1.7,并且一直在使用新的 Prefetch 对象,这是一个很好的补充。但是,当我需要遍历多个关系时,我似乎陷入了困境。这是我的代码:
product_types = self.get_queryset().select_related().prefetch_related(
'excise_category__exciseitem_set__unit',
Prefetch(
'bevtank_set__package_set__checkout_set',
queryset=CheckOut.objects.filter(
create_date__lte=end_date,
submission__isnull=True,
exempt=False),
to_attr='checkouts_due'
)
)
...
for pt in product_types:
...
co = pt.checkouts_due
...
这给了我'ProductType' object has no attribute 'checkouts_due' 上的co = pt.checkouts_due。如果我将查找减少为单个反向查找(出于调试目的),它可以正常工作。
所以要么是我的代码有问题,要么是 Prefetch 存在限制。谁能解释一下这里可能发生的事情?
谢谢 内森
【问题讨论】:
标签: django django-models django-queryset django-orm