本篇文章為大家展示了Django ModelChoiceField中修改過濾查詢集 queryset的兩種方法分別是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)從2013年成立,先為銅官等服務(wù)建站,銅官等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為銅官企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
Django Form類定義中有一個 ModelChoiceField 對應(yīng)的是Model 的外鍵,queryset 是返回一個查詢集對象
例如,我有一個Form
class BookForm(forms.Form):
books = forms.ModelChoiceField(queryset=Books.objects.all())
這似乎并沒有什么問題。
但是我想要傳遞books的id,就出現(xiàn)了問題。我們可以如下解決。
1、重寫init方法并接受新的關(guān)鍵字
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()
如果要設(shè)置默認(rèn)值可以通過{initial={'id':1}的方法進(jìn)行。
上述內(nèi)容就是Django ModelChoiceField中修改過濾查詢集 queryset的兩種方法分別是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。