Django动态管理站点

时间:2015-03-13 16:14:53

标签: python django django-models django-admin

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

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

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

该问题的另一个可能的解决方案是将该唯一标识符提供给我的admins.py。我无法弄清楚如何获得该单个密钥,然后我可以在admins.py中查询。如果我知道如何访问bridgekey,我可以动态查询我的admins.py。那么如何在admins.py中访问该条目的brkey(像BridgeModel.brkey这样的东西?)

我在admin.py中尝试了几个不同的东西,并尝试过在我的管理类中覆盖get_fields()方法的注释建议,但我可能在语法上错了,我有点困惑它究竟需要什么对象是。这是实际的入场券吗?或者是个别领域?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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