繁体   English   中英

Django管理站点中的全局变量

[英]Global Variables in Django Admin Site

这是我最初的问题,但没有得到回答,所以我想我想用我尝试过的一些策略再次发表,并且更具体一些。

我想创建一个动态管理站点,基于该字段是否为空白将显示该字段。 因此,我有一个模型,该模型具有一定数量的字段,但是对于每个单独的条目,将不会包含模型中的所有字段,因此我想根据该字段是否为空白来排除该字段。 我的项目是关于桥梁的,因此,实际上,我有一个模型,其中包含每个桥梁部分(大约等于100),但是每个单独的桥梁(映射到每个唯一的brkey)将不会全部包含100桥梁零件。 因此,我可以预先填充它确实具有的所有字段,但是管理站点上还有其他100个字段,并且我不想显示那些在我的管理站点上未用于该特定网桥的字段,但是这些字段将每个桥梁几乎都不同。

就像我之前说的,我有一个唯一的网桥标识符(一个唯一的15位数字字符串),它与每个网桥相关,然后与描述该网桥的所有各种不同变量相关。

现在我已经设置好了,用户将使用唯一的bridgekey进入URL,然后将创建该bridge的条目。 因此(当我在本地计算机上进行测试时)就像localhost / home / brkey ,而我views.py中与该URL对应的代码是

这是我必须走的最后一条路线吗? 我对JavaScript非常陌生,所以我不想走这条路,但是如果需要的话,我会的。 Django是否还会在语法上使用Javascript? 如果是这样,我找不到有关将Javascript合并到我的管理站点中的任何Django文档。

我穷尽的最后一个选择是使用全局变量。 我将其放置在admins.py中,并在其中也放置了modelAdmin类,而不是在Views.py中创建该条目的URL。

管理员

设置全局变量

bridgekey_unique =“”

如果我可以找到将唯一的桥键传递给我的modelAdmin类的方法,或者因为桥没有该部分而弄清楚该字段是否为空白,则无需使用Java脚本就可以实现我想要的功能。 我尝试了所有这两种策略的许多变体,但都没有用,但是没有尝试JavaScript想法,因为我根本不了解任何javascript。

很抱歉,冗长的帖子,但是人们说我不够具体。 任何帮助将不胜感激。

我没有读完所有的内容-抱歉,太多了。 但是我确实注意到您的评论,您希望您可以在modeladmin定义中访问您在视图中设置的变量。 那可能行不通。

首次导入包含该类的模块时,总是执行类级别的任何操作。 那是服务器进程启动时的时间,因此尚无可能在视图中进行任何操作。

您几乎永远都不想在课堂上有任何逻辑。 您需要将其放入在相关时间调用的方法中。 在这种情况下,您可能需要使用get_fields方法。

编辑

进一步查看您对get_fields方法的尝试,我完全看不到您在这里尝试做的事情。 'prestressed_concrete_deck'是文字字符串,并且永远不能为None ,因此您的任何条件都不能为真。 关于参数是什么的问题,该方法文档清楚地说明了obj是正在编辑的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM