在我的django应用中,我希望能够为我的一些模型添加自定义的帮助文本到管理更改表单中。注意我不是在谈论我可以在单个字段上设置的特定于字段的help_text
属性。例如,在My_App
中My_Model
的更改表单顶部,我希望能够添加一些HTML,内容为“有关我的模型的附加信息,参见http://example.com“,以便提供指向内部文档wiki的链接。
有什么简单的方法可以完成这个任务吗?或者我需要为模型创建一个自定义的管理表单吗?如果有,你能给予我一个我会怎么做的例子吗?
在我的django应用中,我希望能够为我的一些模型添加自定义的帮助文本到管理更改表单中。注意我不是在谈论我可以在单个字段上设置的特定于字段的help_text
属性。例如,在My_App
中My_Model
的更改表单顶部,我希望能够添加一些HTML,内容为“有关我的模型的附加信息,参见http://example.com“,以便提供指向内部文档wiki的链接。
有什么简单的方法可以完成这个任务吗?或者我需要为模型创建一个自定义的管理表单吗?如果有,你能给予我一个我会怎么做的例子吗?
6条答案
按热度按时间pgpifvop1#
使用管理员的字段集:
你可以在一个admin中有多个字段集。每个字段集都可以有自己的标题(用标题替换上面的
None
)。你也可以将'classes': ('collapse',),
添加到一个字段集中,使它开始时处于折叠状态(wide
类使数据字段变宽,其他类名表示CSS所指示的任何内容)。注意:
description
字符串被认为是安全的,所以不要在里面放任何未经清理的数据。这样做是为了你可以在需要的时候放标记(比如你的链接),但是块格式(比如<ul>
列表)可能看起来不对。30byixjq2#
有一种相当简单但缺乏文献记载的方法可以实现这一点。
在Admin类中定义render_change_form
首先,你需要传递额外的上下文给你的admin。要做到这一点,你可以在你的admin类中定义一个render_change_form函数,例如:
创建自定义模板
接下来,您需要创建自定义模板(change_form_help_text. html)并扩展默认的“admin/change_form. html”。
我选择将此模板放在templates/admin/myapp/中,但这也很灵活。
更多信息请访问:
http://davidmburke.com/2010/05/24/django-hack-adding-extra-data-to-admin-interface/
http://code.djangoproject.com/wiki/NewformsHOWTO#Q:HowcanIpassextracontextvariablesintomyaddandchangeviews
ztmd8pv53#
除了可以创建带有描述的字段集之外,您还可以覆盖管理员的变更表单模板。
c2e8gylq4#
如果我明白你想要什么下面的代码应该做你想要的。
这是一个使用一些逻辑来修改一个被覆盖的表单的例子,所以你只需要把它放在你的ModelAdmin构造函数中。
k4emjkb15#
作为对这个问题的更新,您可以使用
help_text
在模型中执行此操作https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.Field.help_text
tsm1rwdh6#
从django 3.0开始,现在可以更容易地覆盖
help_text
的管理字段:https://docs.djangoproject.com/en/3.0/topics/forms/modelforms/#overriding-the-default-fields