django 按需显示管理字段
Posted
技术标签:
【中文标题】django 按需显示管理字段【英文标题】:django show admin field on demand 【发布时间】:2013-12-13 04:04:16 【问题描述】:我想在 django 管理界面中按需隐藏字段,这意味着并非所有参数都是必需的。这只是为了我的软件客户的可用性。
如果某些条件成立,例如类型字段应该完全隐藏。
条件不成立:
条件(使用我当前的代码):
隐藏是可能的,但仍有“剩菜”。是否可以在没有此类剩余物的情况下完整隐藏“类型行”?比如什么时候
class Meta:
exclude = ["type"]
设置好了吗? (这不可能在运行时修改)
到目前为止,我的代码按需隐藏管理字段:
class SubItemForm(ModelForm):
def __init__(self, *args, **kwargs):
super(SubItemForm, self).__init__(*args, **kwargs)
if self.instance.type == "SOME CONDITION":
self.fields["type"].widget = CompleteHidden()
self.fields["type"].label = ""
class Meta:
model = SubItem
【问题讨论】:
有效吗?你的问题是什么?您也可以完全从 dict (self.fields.pop("type")) 中删除该字段。 这很遗憾地引发了“在表单中找不到键'类型'”。我的(不优雅的)后备选项是使用 javascript 隐藏相关字段。 【参考方案1】:将 editable=False 添加到要在模型类中隐藏的字段。
例如
to_hide = models.TextField(editable=False)
希望对你有帮助。
【讨论】:
我可以在运行时执行此操作吗?在每个实例上分开?以上是关于django 按需显示管理字段的主要内容,如果未能解决你的问题,请参考以下文章
根据另一个字段中的选择显示/隐藏 django 管理表单字段
在 django 中单击管理员的选择字段后如何隐藏或显示模型字段