我从主干try 了Django 1.4中的prefetch_related(),但无法进行预取反向查找.

我的简化模型(每本书都有很多价格):

class Book(models.Model):
    # some fields

class Price(models.Model):
    book = models.ForeignKey(Book)

我的观点是:

books = Book.objects.prefetch_related('price')

然后,我收到AttributeError消息:

AttributeError: Cannot find 'price' on Book object, 'price' is an invalid parameter to prefetch_related()

怎么才能让它工作呢? 谢谢.

推荐答案

定义相关名称:

class Price(models.Model):
    book = models.ForeignKey(Book, related_name='prices')

然后使用它:

books = Book.objects.prefetch_related('prices')

Django相关问答推荐

如何根据属性的 Select 对查询集进行排序

以特定顺序获取模型实例时出现问题

管理器不能通过对象上的对象实例访问.保存()

Django-Values()并按月分组

在Django上传JPEG图像时遇到问题

Pymongo:搜索文档时忽略空输入值

如何重命名标准 django-registration 模板的名称

如果一个应用程序有多个具有相同字段的模型,那么保持 DRY 的最佳实践是什么?

包含资源时,DRF 返回我的软删除记录

Django 有脚手架吗?

Python / Django 中的 Unicode 与 UTF-8 混淆?

如何使用 select_for_update 在 Django 中获取查询?

Django:获取上次用户访问日期

使用 Django 1.5 实现多种用户类型

UnicodeEncodeError:ascii编解码器无法编码字符

如何在不发送信号的情况下保存模型?

Django 什么是反向关系?

Django将HttpResponseRedirect返回到带有参数的url

如何使 Django 的开发服务器公开?

如何在 Django 中创建一个非空的 CharField?