我有一个要求,即一个用户通过ModelForm创建一个对象的“实例”。另一个组的另一个用户有权读取表单的所有字段,但只能更新一个字段。想象一下创建考试对象的学生。然后一个教学提出了考试,只需要进入一个年级,考试的其余部分是只读的。
最好的方法是什么?我应该只查询对象,并单独显示每个字段,然后为一个字段创建一个表单(而不是ModelForm?)?
答案 0 :(得分:3)
我应该只查询对象,并单独显示每个字段,然后为一个字段创建一个表单(不是ModelForm?)?
这可能是最好的方法。请注意,可以使用ModelForm
作为教师表单,请参阅using a subset of fields on a model form上的Django文档。您必须在模板中手动显示所有其他字段,但您可能应该为此视图设置单独的模板(我也会使用单独的视图)。
您可以在Django Snippets上找到一些只读字段的代码,但通常最好明确说明您要从每个视图更新哪些字段。这可能比它的价值更麻烦。