我有一个Django模型,它有一个外键owner
,指的是拥有这个对象的用户。 要让其他用户编辑这些对象,我目前使用forms.ModelForm
,迄今为止工作正常。修改Django ModelForms字段
但我知道要让所有者和只有拥有者更改他拥有的对象的拥有者(什么是拥有者!:)。因此,我尝试了以下内容:
class FolderForm(forms.ModelForm):
def __init__(self, user, *args, **kwargs):
if kwargs.get("instance", False):
if user == kwargs["instance"].owner:
self._meta.fields += ("owner",)
super(FolderForm, self).__init__(*args, **kwargs)
class Meta:
model = Folder
fields = (
"name",
"description",
)
但是,这并不工作,因为Django使用一些元类魔法设置在模型上,这似乎是我的子类__init__
调用之前要做的字段。
有没有人做过这样的事情?
你需要所有者设置为谁创建的文件夹对象的用户? – San4ez 2012-04-20 14:35:45