我有一个会话变量:
empresa=request.session['codEmp']
我有一个ModelForm和一个ModelChoiceField:
class AuxiForm(forms.ModelForm):
tipAux = forms.ModelChoiceField(queryset=TipoAux.objects.all(), empty_label=None,
required=True, to_field_name='codigo')
如果您看到tipAux
的queryset,它当前正在调用TipoAux
对象,但是我确实需要做一个过滤器,只调用用户在codEmp
会话变量上具有相同empresa
属性的TipoAux
对象
我试着这样做:
tipAux = forms.ModelChoiceField(queryset=TipoAux.objects.filter(empresa=request.session['codEmp']),
empty_label=None, required=True,
to_field_name='codigo')
但是Django不允许我在表单中使用request.session
。你知道吗
有办法处理吗?你知道吗
尝试重写窗体的
__init__()
方法,并将session变量作为参数传入窗体:在你的
view.py
中,你可以说:form = AuxiForm(data=request.POST, filter_on=request.session['codEmp'])
或者,可以使用Django的泛型model view。如果您的表单不比您发布的表单复杂,您只需设置
queryset
属性。(我将把阅读留给您,因为我自己只是刚刚熟悉一般视图。)相关问题 更多 >
编程相关推荐