我正在使用Django 1.6和Python 2.7,我的相关模型很少:
# keys/models.py
class Key(models.Model):
user = models.ForeignKey('auth.User')
is_valid = models.BooleanField()
# entities/models.py
class Entity(models.Model):
user = models.ForeignKey('auth.User')
key = models.ForeignKey('keys.Key')
active = models.BooleanField(default=False)
# profile/models.py
class Profile(models.Model):
user = models.ForeignKey('auth.User')
profile_id = models.PositiveIntegerField(null=True, blank=True)
是否可以进行单线查询来检查这些条件:
Key.is_valid
必须为True
Entity.active
必须为True
Profile.profile_id
不得为null
(或None
)我唯一可以传递给该查询的是request.user
。
答案 0 :(得分:1)
如果你想获得Entity对象:
objects = Entity.objects.filter(active=True,
key__is_valid=True,
user__profile__profile_id__isnull=False)
答案 1 :(得分:1)
我认为这就是你所需要的:
检查实体:
entity = Entity.objects.filter(active=True, key__is_valid=True, user=request.user)
检查资料
profile = Profile.objects.filter(user=request.user, profile_id__isnull=False)