What are the two methods of modifying the filter query set queryset in Django ModelChoiceField
This article shows you what are the two ways to modify the filtered query set queryset in Django ModelChoiceField. The content is concise and easy to understand, which will definitely brighten your eyes. I hope you can get something through the detailed introduction of this article.
In the Django Form class definition, there is a ModelChoiceField corresponding to the foreign key of Model, and queryset returns a query set object
For example, I have a Form
Class BookForm (forms.Form):
Books = forms.ModelChoiceField (queryset=Books.objects.all ())
There seems to be nothing wrong with this.
But there was a problem when I tried to pass the id of books. We can solve the problem as follows.
1. Override the init method and accept the new keywords
Def _ init__ (self,*args,**kwargs):
Id = kwargs.pop ('id',None)
Super (BookForm,self) .init (* args,**kwargs)
Form = BookForm ({'id':1})
two。 Modify the queryset object in the view
Form = BookForm ()
Form.fields ['books'] .queryset = Books.objects.filter (id=1) .all ()
If you want to set the default value, you can use the method of {initial= {'id':1}.
What are the two ways to modify the filter query set queryset in Django ModelChoiceField? have you learned any knowledge or skills? If you want to learn more skills or enrich your knowledge reserve, you are welcome to follow the industry information channel.