Django在过滤器中使用反向OneToOne?
我有两种型号:Django在过滤器中使用反向OneToOne?,django,django-models,Django,Django Models,我有两种型号: class CustomUser(models.Model): ... class Profile(models.Model): user = models.models.OneToOneField(CustomUser) fielda = models.IntegerField() 我正试图根据CustomUser模型中的配置文件模型上的字段值执行筛选查询,但它给了我一个错误名称“Profile”未定义 CustomUser.objects.all()
class CustomUser(models.Model):
...
class Profile(models.Model):
user = models.models.OneToOneField(CustomUser)
fielda = models.IntegerField()
我正试图根据CustomUser模型中的配置文件模型上的字段值执行筛选查询,但它给了我一个错误名称“Profile”未定义
CustomUser.objects.all().select_related('profile').filter(profile.fielda=0)
我需要从CustomUser模型开始选择,因为我必须使用FK将其他模型预回迁到CustomUser,因此我不能简单地从配置文件模型开始。一个使用两个连续下划线(
\uuuuuuu
)来“浏览”关系,因此您可以使用以下选项进行筛选:
CustomUser.objects.filter(profile__fielda=0)
CustomUser.objects.filter(profile\u fielda=0)
因此,上面将检索所有CustomUser
s,其中fielda
为0
的相关Profile
对象
请注意,.select_related(..)
不是筛选所必需的。仅当您还希望将数据提取到内存中时才使用此选项