Django Filter Select_Related

AgD*_*ude 4 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)
Run Code Online (Sandbox Code Playgroud)

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

Spi*_*ike 8

你不能这样做,select_related因为它只适用于一对一字段或ForeignKeys.对于像这样的反向关系,已经引入了开发版本,prefetch_related这正是您正在寻找的.

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