Django 动态管理站点

Django Dynamic Admin Site

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

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

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

该问题的另一种可能解决方案是将该唯一标识符移交给我的 admins.py。我不知道如何获取那个单独的密钥,因为我可以在 admins.py 中查询。如果我知道如何访问 bridgekey,我可以在 admins.py 中动态查询。那么我如何在 admins.py 中访问该条目的 brkey(类似于 BridgeModel.brkey ?)

我在我的 admin.py 中尝试了几种不同的方法,并尝试了在我的管理 class 中覆盖 get_fields() 方法的评论建议,但我可能在语法上是错误的我有点困惑它到底需要什么对象。那是实际输入吗?或者是个别字段?

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

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

我有一个以前的方法建议覆盖 get_fields 方法。原来这个方法根本行不通,因为我用的是Django 1.6.2版本,不支持重写get_fields方法。我升级到 1.7 ,并覆盖 get_fields 工作