您好,登錄后才能下訂單哦!
本篇文章為大家展示了Django ModelChoiceField中修改過濾查詢集 queryset的兩種方法分別是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Django Form類定義中有一個 ModelChoiceField 對應的是Model 的外鍵,queryset 是返回一個查詢集對象
例如,我有一個Form
class BookForm(forms.Form):
books = forms.ModelChoiceField(queryset=Books.objects.all())
這似乎并沒有什么問題。
但是我想要傳遞books的id,就出現了問題。我們可以如下解決。
1、重寫init方法并接受新的關鍵字
def __init__(self,*args,**kwargs):
id = kwargs.pop('id',None)
super(BookForm,self).init(*args,**kwargs)
form = BookForm({'id':1})
2. 在視圖中修改queryset對象
form = BookForm()
form.fields['books'].queryset = Books.objects.filter(id=1).all()
如果要設置默認值可以通過{initial={'id':1}的方法進行。
上述內容就是Django ModelChoiceField中修改過濾查詢集 queryset的兩種方法分別是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。