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(..)
不是筛选所必需的。仅当您还希望将数据提取到内存中时才使用此选项