Django Filter Select_Related

时间:2012-01-29 14:07:40

标签: django

使用select_related时,是否有人开发了一种过滤外键表中字段的方法。

例如给出这些模型:

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)

class AuthorExtra(models.Model):
    author = models.ForeignKey(Author)
    type = models.ForeignKey(ExtraType)
    value = models.CharField(max_length = 24)

我想要一种方法来缓存特定类型的所有相关AuthorExtra对象。

1 个答案:

答案 0 :(得分:7)

您无法使用select_related执行此操作,因为它仅适用于一对一字段或ForeignKeys。对于像这样的反向关系,开发版本引入了prefetch_related,这正是您正在寻找的。

https://docs.djangoproject.com/en/dev/ref/models/querysets/#prefetch-related