可以说我有两种模型和一种形式:
class Person(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
class Car(models.Model):
plate = models.CharField(max_length=255)
persons = models.ManyToManyField(Person)
class CarAddForm(forms.ModelForm):
plate = forms.CharField()
persons = forms.ModelMultipleChoiceField(queryset=Person.objects.all())
class Meta:
model = Car
fields = [
'plate',
'persons'
]
有没有办法获取与任何汽车都不相关的人的ModelMultipleChoiceField查询集?在编辑Car模型对象的情况下,查询集应包含不与任何car PLUS相关的人员PLUS与要编辑的car相关的人员
PS:也许有更好的方法可以实现这一目标?
您可以使用as的limit_choices_to
-(Doc)参数ManyToManyField
class Car(models.Model):
plate = models.CharField(max_length=255)
persons = models.ManyToManyField(
Person,
limit_choices_to={"car__isnull": True}
)
另外,您也可以更改as的queryset
参数ModelMultipleChoiceField
class CarAddForm(forms.ModelForm):
plate = forms.CharField()
persons = forms.ModelMultipleChoiceField(
queryset=Person.objects.filter(car__isnull=True)
)
class Meta:
model = Car
fields = [
'plate',
'persons'
]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句