Erstellen Sie in Django-Formularfeldern standardmäßig ein leeres Abfrage-Set



0 Answers

@ radteks comment sollte eine Antwort sein, da es in ähnlichen Szenarien nützlich ist, aber mit einem anderen Ansatz als der akzeptierten Antwort.

Wenn sich Ihr Abfrage-Set mit der URL in Ihrer Sicht ändert

Ich erweitere die Antwort mit einem Beispiel wie ich es benutzt habe:

def my_view(request):
    ...
    form = YourForm(initial={'field1':value1, 'field2':value2})
    form.fields['field3'].queryset = YourModel.objects.filter('foo'=bar)
Question

Ich habe diese Felder in Form:

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())

Bezirk kommt von Klick auf Stadt und Bereich kommt aus Klick auf Bereich. Mit dem queryset=MyDistrict.objects.all() und queryset=MyArea.objects.all() wird es sehr schwer. Wie kann ich Abfragesätze standardmäßig leer lassen?

Danke im Voraus




Related