Skip to main content
 首页 » 编程设计

python之Django 显示最多只读表单的最佳实践,一个字段可写

2024年09月03日33shangdawei

我有一个要求,其中一个用户通过 ModelForm 创建一个对象的“实例”。不同组的另一用户有权读取表单的所有字段,但只需更新一个字段。想一想创建考试对象的学生。然后一个老师拉起考试,只需要输入一个成绩,考试的其余部分是只读的。

最好的方法是什么?我是否应该只查询对象并单独显示每个字段,然后只为一个字段创建一个表单(而不是 ModelForm?)?

请您参考如下方法:

Should I just query for the object, and display each field individually, then create a form (not a ModelForm?) for just the one field?

这可能是最好的解决方法。请注意,您可以为教师表单使用ModelForm,请参阅 using a subset of fields on a model form 上的 Django 文档.您必须在模板中手动显示所有其他字段,但您可能应该为该 View 设置一个单独的模板(我也会使用单独的 View )。

您可以在 Django Snippets 上找到一些只读字段的代码,但通常最好明确说明要从每个 View 更新哪些字段。这可能比它的值(value)更麻烦。