Django ORM 查询嵌套模型

Django ORM querying nested models

我想用django ORM从数据库中过滤一些记录, 我有一个名为 User 的模型,其中包含另一个模型的字段 profile, 当我执行以下操作时,我得到了所有具有配置文件的用户:

users = User.objects.filter(Q(profile__isnull=False))

profile 有一个字段 age 我想删除所有配置文件和年龄> 30 的用户。 因此,我遍历了所有具有配置文件的用户,然后检查他们的年龄是否 > 30。

for user in  users:
    if user.profile.age>30:
          user.delete()

有没有办法直接在查询中使用user.profile.age>30

我通过组合 Django 中的 Q 个对象解决了这个问题,如下所示:

User.objects.filter(Q(profile__isnull=False) & Q(profile__age__gt=30))