0

私はPython 2.7でDjango 1.6を使用していますが、関連するモデルはほとんどありません:

# 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_idnull(またはNone)であってはなりません

そのクエリに渡すことができる唯一のものはrequest.user.

4

2 に答える 2

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)
于 2014-02-20T18:15:25.283 に答える
1

Entity オブジェクトを取得する場合:

objects = Entity.objects.filter(active=True, 
                                key__is_valid=True, 
                                user__profile__profile_id__isnull=False)
于 2014-02-20T18:04:58.187 に答える