Django Admin中的动态只读字段

Django Admin中的动态只读字段,django,django-forms,django-admin,Django,Django Forms,Django Admin,在模型的Django Admin中,我希望所有字段都是: 创建时可编辑 其中一些是在更新时更新的(基于创建时的实例字段值) 例如: 2-1。如果属性a有值,则与属性c和b对应的字段将为只读 2-2。如果属性在创建后为空,则在更新时不应编辑 我知道,对于正常形式,有字段disabled属性 我知道我需要覆盖管理表单,但我不知道表单初始化时是创建还是更新的 通常我使用clean()获取值,但在这里,我需要在初始化时获取它们,以防更新。因此如下所示: 您可以创建自定义表单,请参见此处 之后,您可以通过

在模型的Django Admin中,我希望所有字段都是:

  • 创建时可编辑
  • 其中一些是在更新时更新的(基于创建时的实例字段值)
  • 例如:

    2-1。如果属性
    a
    有值,则与属性
    c
    b
    对应的字段将为只读

    2-2。如果属性在创建后为空,则在更新时不应编辑

    我知道,对于正常形式,有字段
    disabled
    属性

    我知道我需要覆盖管理表单,但我不知道表单初始化时是创建还是更新的

    通常我使用clean()获取值,但在这里,我需要在初始化时获取它们,以防更新。

    因此如下所示:

  • 您可以创建自定义表单,请参见此处

  • 之后,您可以通过重写get_form方法来添加要使用的表单的逻辑。看这里

  • 但是,您需要确保DB将接受部分提交的数据。您可以在特定列上删除NULL。

    因此如下所示:

  • 您可以创建自定义表单,请参见此处

  • 之后,您可以通过重写get_form方法来添加要使用的表单的逻辑。看这里

  • 但是,您需要确保DB将接受部分提交的数据。您可以在特定列上删除NULL