【问题标题】:Dynamic read-only field in Django AdminDjango Admin中的动态只读字段
【发布时间】:2018-06-03 03:22:57
【问题描述】:

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

  1. 创建时可编辑
  2. 其中一些正在更新(基于创建时的实例字段值)。

例如:

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

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

我知道对于普通形式有 Field disabled 属性。

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

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

【问题讨论】:

    标签: django django-forms django-admin


    【解决方案1】:

    原来是这样的:

    1. 您可以创建自定义表单,请参见此处https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form

    2. 之后,您可以通过覆盖 get_form 方法来添加要使用哪种表单的逻辑。看这里https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_form

    但是,您需要确保您的数据库能够接受部分提交的数据。您可以在特定列上 DROP NULL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-21
      • 2012-11-28
      • 2012-05-29
      • 2019-01-20
      • 2018-06-12
      • 2012-02-01
      • 1970-01-01
      • 2018-07-28
      相关资源
      最近更新 更多