personalizados - Crear queryset vacío por defecto en los campos de formulario django
modelos en django (2)
El comment de @radtek debe ser una respuesta, ya que es útil en escenarios similares pero con un enfoque diferente de la respuesta aceptada.
Si su conjunto de preguntas cambia con la url en su vista.
Extiendo la respuesta con el ejemplo que utilicé:
def my_view(request):
...
form = YourForm(initial={''field1'':value1, ''field2'':value2})
form.fields[''field3''].queryset = YourModel.objects.filter(''foo''=bar)
Tengo estos campos en forma:
city = forms.ModelChoiceField(label="city", queryset=MyCity.objects.all())
district = forms.ModelChoiceField(label="district", queryset=MyDistrict.objects.all())
area = forms.ModelChoiceField(label="area", queryset=MyArea.objects.all())
el distrito proviene de hacer clic en la ciudad y el área proviene de hacer clic en el área. Con queryset=MyDistrict.objects.all()
y queryset=MyArea.objects.all()
formulario será muy pesado. ¿Cómo puedo hacer que los conjuntos de consulta estén vacíos de forma predeterminada?
Gracias por adelantado
Puede tener un queryset vacío al hacer esto:
MyModel.objects.none()
Aunque no sé cómo vas a usar ese formulario, puedes ponerlo como el conjunto de preguntas de tu campo para obtener lo que necesitas ...
Puede encontrar más información here