【问题标题】:Django Dynamic Admin Site [closed]Django 动态管理站点 [关闭]
【发布时间】:2015-03-13 16:14:53
【问题描述】:

我想创建一个动态管理站点,基于该字段是否为空白将显示该字段。因此,我有一个具有一定数量字段的模型,但是对于每个单独的条目,将不包含模型中的所有字段,并且我想根据该字段是否为空白来排除。我之前发布的这个问题的细节少得多,但它被搁置了,所以我发布了一个更详细的新问题。

我有一个唯一的桥标识符,它与每个桥相关联,然后是描述桥的所有各种不同变量。

但是,并非每座桥梁都是相同的,我想在我的模型中包含更多变量,但现在我只测试两个:prestressed_concrete_deck 和 enhanced_concrete_coated_bars。我想要的是动态创建管理站点,如果该字段为空,则不显示 prestressed_concrete_deck 变量。因此,我不想在管理站点上显示所有变量,而是只想在该桥具有该部分时显示这些变量,并且如果该字段为空白则不显示任何内容。

该问题的另一种可能解决方案是将唯一标识符传递给我的 admins.py。我无法弄清楚如何获取那个单独的密钥,然后我可以在 admins.py 中查询。如果我知道如何访问桥键,我可以在我的 admins.py 中动态查询。那么如何在我的 admins.py 中访问该条目的 brkey(类似于 BridgeModel.brkey ?)

我在 admin.py 中尝试了几种不同的方法,并尝试了 cmets 建议在我的管理类中覆盖 get_fields() 方法,但我可能在语法上是错误的,我有点困惑它到底需要什么对象是。这是真正的入口吗?还是那是个别领域?

【问题讨论】:

    标签: python django django-models django-admin


    【解决方案1】:

    我不确定我是否理解您的问题。

    但如果我这样做了,而您只想在模板中显示非空字段。我建议对您的查询进行硬编码,以防您必须进行联接,以在views.py (Bridge.objects.raw(query)) 中询问您的数据库。之后,您可以将获得的结果作为参数发送到 html 文件中,并开发一个 javascript 函数来根据参数的内容显示或隐藏该字段。

    【讨论】:

    • 这正是我的问题。因此,如果一个字段为空或空白,我不想显示它。我正在考虑切换到 django 表单,但这些表单的安全性较低,并且需要做更多的工作,这就是我真的想使用管理站点的原因。以前是否有任何关于明确为管理站点合并 html 和 javascript 的文档?我在表单页面上看到了文档,但在我的目标管理站点上却没有。
    • 您可以将您的 js 文件添加到管理类的内部 Media 类中,或者另一种可能的解决方案是覆盖管理模板并添加您的代码 javascript
    【解决方案2】:

    我之前有一个建议覆盖 get_fields 方法的方法。该方法最初根本不起作用,因为我使用的是 Django 1.6.2 版本,并且不支持覆盖 get_fields 方法。我升级到 1.7 并覆盖 get_fields 工作

    【讨论】:

      猜你喜欢
      • 2019-03-18
      • 1970-01-01
      • 2011-09-23
      • 2010-09-14
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      相关资源
      最近更新 更多