Create empty queryset by default in django form fields

后端 未结 2 709
抹茶落季
抹茶落季 2021-01-30 08:09

I have this fields in form:

city = forms.ModelChoiceField(label=\"city\", queryset=MyCity.objects.all())
district = forms.ModelChoiceField(label=\"district\", qu         


        
相关标签:
2条回答
  • 2021-01-30 08:25

    You can have an empty queryset by doing this:

    MyModel.objects.none()
    

    Although i don't know how are you going to use that form, you can put that as your field's queryset in order to get what you need...

    You can find more information here

    0 讨论(0)
  • 2021-01-30 08:26

    @radtek's comment should be an answer as it is useful in similar scenarios but with different approach than the accepted answer.

    If your queryset changes with the url in your view.

    I am extending the answer with example as I used:

    def my_view(request):
        ...
        form = YourForm(initial={'field1':value1, 'field2':value2})
        form.fields['field3'].queryset = YourModel.objects.filter('foo'=bar)
    
    0 讨论(0)
提交回复
热议问题