如果用户有特定的属性,我有一个排除字段的问题。在
我试图使用is_staff
选项在this tip后面进行测试,但我无法使其工作。我得到错误:__init__() got an unexpected keyword argument 'user'
如果用户是职员,有谁能告诉我如何排除一些字段?在
这是我的表格表单.py在
class NewOrderForm(forms.ModelForm):
class Meta:
model = WorkOrder
fields = ['store_internal_order',
'sector',
'article',
'serial',
'work',
'article_details',
'cash_advance',
'initial_price'
]
def __init__(self, *args, **kwargs):
super(NewOrderForm, self).__init__(*args, **kwargs)
user = kwargs.pop('user')
if user.is_staff:
del self.fields['store_internal_order']
这是我的观点
^{pr2}$非常感谢能帮助我的人。在
对不起,我的英语不好!在
不确定这是否有帮助,但是
user = kwargs.pop('user')
应该是user = kwargs.pop('user', None)
?您也尝试过将user=request.user
作为NewOrderForm
中的参数传递吗?在您的思路是正确的,但您的语句
user = kwargs.pop('user')
的位置不正确。它应该在super(NewOrderForm, self).__init__(*args, **kwargs)
之前调用。发生此错误的原因是,在基窗体类中,__init__()
方法不希望接受您的user
参数。因此,我们需要首先弹出它并将其存储在一个变量中,然后调用super
。在修正后:
相关问题 更多 >
编程相关推荐