我有一个模型,根据人物将能够编辑字段。例如:
class myForm(forms.ModelForm):
fieldone = forms.CharField()
fieldtwo = forms.CharField()
fieldthree = forms.CharField()
class Meta:
model = myModel
fields = (...???...)
人1可以编辑:fieldone 人2可以编辑:fieldone,fieldtwo 人3可以编辑:fieldone,fieldtwo,fieldthree
如何在不创建新表单的情况下执行此操作,仅更改“字段”字段?
答案 0 :(得分:1)
你可以简单地使用某种工厂,例如一个函数,如:
def myFormFactory(fields):
class myForm(forms.ModelForm):
fieldone = forms.CharField()
fieldtwo = forms.CharField()
fieldthree = forms.CharField()
class Meta:
model = myModel
fields = fields
return myForm
我不确定字段是否隐藏了原始模型中没有的字段;如果没有,您可能需要根据相同的参数'fields'在表单的 init 中进行一些调整