在我的django应用程序中,我希望能够为某些模型的管理更改表单添加自定义的帮助文本。注意我不是在谈论help_text我可以在各个字段上设置的特定于字段的属性。例如,在变化形式的顶部,My_Model在My_App我想能够添加一些HTML,说:“有关我的模型的更多信息,请参阅http://example.com为了提供一个链接到一个”内部文档Wiki。
help_text
My_Model
My_App
有没有简单的方法可以做到这一点,还是我需要为模型创建一个自定义管理表单?如果是这样,您能举一个例子说明我该怎么做吗?
有一个相当简单的方法,但是文档不足,无法完成此任务。
首先,您需要将额外的上下文传递给管理员。为此,您可以在admin类中定义render_change_form函数,例如:
# admin.py class CustomAdmin(admin.ModelAdmin): def render_change_form(self, request, context, *args, **kwargs): # here we define a custom template self.change_form_template = 'admin/myapp/change_form_help_text.html' extra = { 'help_text': "This is a help message. Good luck filling out the form." } context.update(extra) return super(CustomAdmin, self).render_change_form(request, context, *args, **kwargs)
接下来,您需要创建该自定义模板(change_form_help_text.html)并扩展默认的’admin / change_form.html’。
# change_form_help_text.html {% extends 'admin/change_form.html' %} {% block form_top %} {% if help_text %}<p>{{ help_text }}</p>{% endif %} {% endblock %}
我选择将此模板放置在templates / admin / myapp /中,但这也很灵活。
有关更多信息,请访问:
http://davidmburke.com/2010/05/24/django-hack-adding-extra-data-to-admin- interface/
http://code.djangoproject.com/wiki/NewformsHOWTO#Q:HowcanIpassextracontextsablesintomyaddandchangeviews