Python 基于引用对象中manytomanyfield的属性获取queryset
我有以下型号:Python 基于引用对象中manytomanyfield的属性获取queryset,python,django,django-models,Python,Django,Django Models,我有以下型号: class ModelOne(models.Model): id=models.UUIDField(主键=True,默认值=uuid.uuid4,可编辑=False) 第二类模型(models.Model): id=models.UUIDField(主键=True,默认值=uuid.uuid4,可编辑=False) 是否可见=models.BooleanField(默认值=False) ModelOne=models.ManyToManyField(ModelOne,blank=
class ModelOne(models.Model):
id=models.UUIDField(主键=True,默认值=uuid.uuid4,可编辑=False)
第二类模型(models.Model):
id=models.UUIDField(主键=True,默认值=uuid.uuid4,可编辑=False)
是否可见=models.BooleanField(默认值=False)
ModelOne=models.ManyToManyField(ModelOne,blank=True)
在视图中,我希望基于ModelTwo
的属性获取ModelOne
s的查询集。例如,如果ModelOne
s的查询集具有ModelTwo
,并且设置为True
引用它们,我如何获取该查询集
举个例子:
one\u one=ModelOne.objects.create()
one_two=ModelOne.objects.create()
two_one=ModelTwo.objects.create()
two\u two=ModelTwo.objects.create(是否可见=True)
two_three=ModelTwo.objects.create()
两个。模型。添加(一个)
保存
两个三个。模型。添加(一个二)
二、三、保存
queryset=[??]
queryset
将只包含one
,因为two\u two
引用了one
,并且还包含是否可见为真您可以使用以下内容进行筛选:
ModelOne.filter(modeltwo__is_visible=True)
ModelOne.filter(modeltwo\u可见=True)
可以反向过滤关系。它将在中使用。如果您没有指定,它将使用,如果您没有指定这两者中的任何一个,它将使用小写的类名称