无法使prefetch_related
生效。
这些是模特:
class Document(models.Model):
document_type = models.CharField(max_length=1, choices=DOCUMENT_TYPE)
document_id = models.PositiveIntegerField()
branch = models.ForeignKey(Branch)
class OrderManager(models.Manager):
def get_queryset(self):
qs = super(OrderManager, self).get_queryset()
return qs.filter(document_type=DOCUMENT_ORDER)
class Order(Document):
objects = OrderManager()
@property
def items(self):
return OrderItem.objects.filter(document=self)
class Meta:
proxy = True
class OrderItem(Item):
objects = OrderItemManager()
class Item(models.Model):
document = models.ForeignKey(Document, related_name='items')
现在打电话时:
Order.objects.all().prefetch_related('items')
错误:
ValueError: 'items' does not resolve to an item that supports prefetching - this is an invalid parameter to prefetch_related().
items
在related_name
,为什么我会收到此错误?
Order
是代理模型。
编辑: 什么时候这样做:
Document.objects.all().prefetch_related('items')
它有效。
需要解决方案才能使其在Order
模式下运行。