https://docs.djangoproject.com/en/1.10/ref/models/fields/ :
"limit_choices_to no tiene ningún efecto cuando se usa en ManyToManyField con una tabla intermedia personalizada especificada mediante el parámetro through".
¡¿Por qué?! ¿Y qué hacer si necesito tanto through como limit_choices_to ?
¿Debería volver de ModelForm a Form simple en esta situación y hacerlo todo manualmente? ¿O hay alguna forma de hacerlo con ModelForm ?
limit_choices_to through ManyToManyField . Y sorprendentemente funciona , a pesar de que los documentos dicen que no.
Aún así, si no funciona para usted, puede establecer un conjunto de consultas personalizado para el campo ManyToMany en su ModelForm .
# models class YourModel(models.Model): some_attr = models.BooleanField() class MyModel(models.Model): my_field = models.ManyToManyField(YourModel, through=...) # forms class MyModelForm(forms.ModelForm): ... my_field = forms.ModelMultipleChoiceField(queryset=YourModel.objects.filter(some_attr=True))