2
私はチェックボックス付きの多段階フォームを持っています。ユーザが最初のステップフォームを送信した後、私は彼がセッションでチェックしたオブジェクトを保存し、2番目のステップのフォームでセッションデータでオブジェクトをフィルタしたいと思います。フォームでセッションを取得するにはどうすればよいですか?
これを達成するには、第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']
ご提案がありますか?
さてさて、私はそれを試してみましたが、それは私にこのエラーを与えている 'TypeError例外:__init __()1つの必要な位置引数不足している:「はqueryset''、CustomSubChoiceFieldは、クエリセットの引数を求めている、私はそれに置くべき何を? – Lindow
空queryset 'queryset = CanvaIcon.objects.none()'を使用することができます。これは '__init__'メソッドで置き換えるためです。 – Alasdair