2
我有一個多選形式的複選框,在用戶提交第一步表單後,我保存他在會話中檢查的對象,在第二步表單中我想用會話數據過濾對象。如何獲得表單中的會話?
爲了實現這一點,我需要在新的ModelForm上進行第二步的會話,不幸的是request
未在表單中定義。
如何訪問我的會話?
class IconSubChoiceForm(forms.ModelForm):
session_icons = request.session.get('icons')
query = Q(tags__contains=session_icons[0]) | Q(tags__contains=session_icons[1]) | Q(tags__contains=session_icons[2])
icons = CustomSubChoiceField(queryset=CanvaIcon.objects.filter(query), widget=forms.CheckboxSelectMultiple)
class Meta:
model = CanvaIcon
fields = ['icons']
有什麼建議嗎?
好吧,我嘗試過,但它給我這個錯誤'類型錯誤:__init __()失蹤1個人需要的位置參數:「queryset'',CustomSubChoiceField是要求一個queryset的說法,我應該怎麼放呢? – Lindow
您可以使用空查詢集'queryset = CanvaIcon.objects.none()',因爲您要在'__init__'方法中替換它。 – Alasdair