使用ORM查询引用表的多对多字段

时间:2017-06-22 12:37:43

标签: django django-orm

我的模型如下:

class AppUser(models.Model):
    id = models.AutoField(primary_key=True)
    user = models.OneToOneField(User)
    states = models.ManyToManyField(State)

class ABC(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50)
    email = models.EmailField()
    app_user = models.ForeignKey(AppUser, null=True, blank=True)

我想在我的数据库中查询ABC模型中存在的对象列表,我想根据状态列表对其进行过滤。

我正在尝试这样的事情:

ABC.objects.filter(app_user__states__in = state_list).values('id','name')

但这不起作用。我是否可以像这样访问多个到多个字段,或者我是否需要创建自定义表格。

1 个答案:

答案 0 :(得分:0)

是的,你可以。

对于queryset:

off-screen bitmap

你会得到这样的SQL:

Data

看起来很好。也许它没有像你期望的那样工作?