【发布时间】:2017-07-28 20:52:25
【问题描述】:
我有一个带有复选框的多步表单,在用户提交第一步表单后,我保存了他在会话中检查的对象,在第二步表单中,我想使用会话数据过滤对象。
为此,我需要在新的 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']
有什么建议吗?
【问题讨论】:
-
你能分享代码吗?我有同样的要求,但是当我使用
form =FormName(request.post)处理表单时,它会抛出异常说Queryset has no attribute session -
另外我正在使用
request.session['key']=[]和MultipleChoiceFieldForm -
你能帮我吗with this one ?
标签: python django django-forms django-sessions