【发布时间】:2013-12-20 09:16:58
【问题描述】:
我有一个 Django 模型,其 created_on 字段设置为 editable=False。这是正确的行为,因为我还设置了 auto_now=True 并且根据文档:
"按照目前的实现,将 auto_now 或 auto_now_add 设置为 True 将导致该字段设置为 editable=False 和 blank=True。"
使用管理员,您可以在ModelAdmin 中将您设置为editable=False 的任何字段定义为readonly_fields,一切都会按预期工作(即字段将显示在表单中,但它们将变灰出)。
但是,在应用程序(即不是管理员)中使用 ModelFormSet 时,我无法弄清楚如何在表单中显示 created_on 字段。根据文档:
"Django 应用以下规则:如果您在 模型字段,通过 ModelForm 从模型创建的任何表单都不会 包括该字段。”
有人知道一种方法来覆盖/规避这种行为吗?
我宁愿不设置editable=True,因为这是我想在最基本的级别上保持的约束。如果我使用auto_now=True,我可能无法将其设置为True。
【问题讨论】:
标签: python django django-forms readonly