溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django ModelChoiceField中修改過濾查詢集queryset的兩種方法分別是什么

發(fā)布時間:2021-12-08 16:27:26 來源:億速云 閱讀:142 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了Django ModelChoiceField中修改過濾查詢集 queryset的兩種方法分別是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Django Form類定義中有一個 ModelChoiceField  對應的是Model 的外鍵,queryset 是返回一個查詢集對象

例如,我有一個Form

class BookForm(forms.Form):
    books = forms.ModelChoiceField(queryset=Books.objects.all())

這似乎并沒有什么問題。

但是我想要傳遞books的id,就出現(xiàn)了問題。我們可以如下解決。

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}的方法進行。

上述內(nèi)容就是Django ModelChoiceField中修改過濾查詢集 queryset的兩種方法分別是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI