【发布时间】:2021-06-18 11:54:39
【问题描述】:
让我向您介绍一下结构。假设我有 3 个模型定义为:
class User(AbastractUser):
some fields...
class UserProfile(Model):
gender = models.CharField(max_length=10, choices=GENDER_CHOICES, default='unknown', verbose_name=_('Gender'))
...
user = models.OneToOneField(User, related_name='userprofile', on_delete=CASCADE)
preferences = models.OneToOneField(
Preferences, related_name='user_profile', null=True, on_delete=CASCADE
)
class Preferences(TimestampedModel):
some fields...
method = models.CharField(
max_length=10, null=True, blank=True, default=None, choices=[(x, x) for x in methods]
)
我想用 django 模型编写这个查询,应该怎么做?
查询:
SELECT * from users as u
INNER JOIN users_profile as up ON u.id as up.user_id
INNER JOIN preferences as p ON p.id as up.preference_id
WHERE p.method = 'TEST'
任何建议,最干净、最优化的方法是什么?
【问题讨论】:
标签: python django django-models orm