首页 > 解决方案 > Django select_related() 但只有一些字段

问题描述

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

我只想过滤通过 select_related 加载的模型字段,而不影响其他查询集字段。有使用 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 查询来选择“音乐家”模型的所有字段和仅用户的用户名。

标签: djangopython-3.xdjango-modelsdjango-rest-frameworkdjango-queryset

解决方案


推荐阅读