Django select_related()但只有一些字段

时间:2018-07-27 19:36:28

标签: django python-3.x django-models django-rest-framework django-queryset

我想使用select_related(),但不加载通过select_related加载的模型的所有字段。

我只想过滤通过select_related加载的模型字段,而不影响其他queryset字段。 有一种解决方案可以使用only()并显式指定所有字段,但是当您有很多字段时,这是不切实际的。

在进化的情况下,使用exclude()和仅排除字段的解决方案都不可行。 (向模型添加字段)

还有其他方法吗?

通过一个示例,它将更容易理解:

class User(model.Model):
    username = models.Charfield(max_length=50)
    # ... many fields here

class Musician(models.Model):
    created_by = models.ForeignKey(User)
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    instrument = models.CharField(max_length=100)
    # ...
    # many of fields here

我想通过使用Django ORM执行单个SQL查询来选择“音乐人”模型的所有字段,并且仅选择用户的用户名。

0 个答案:

没有答案