在Django Inline Admin中模拟“帮助”文本

时间:2013-03-23 18:29:14

标签: django django-admin

我在我的Django应用程序中使用内联管理员。我希望在页面的管理表单中显示一些帮助文本以与内联管理员一起使用(而不仅仅是该模型中每个字段的单独帮助文本)。我一直试图弄清楚如何做到这一点,但似乎无法在这个问题上找到任何东西。这样做我错过了一些微不足道的开箱即用选项吗?

如果没有超级简单的方法可以做到这一点,有没有办法通过扩展一些模板来做到这一点?

以下是我的模特及其管理员的部分内容:

class Page(models.Model):
    ....

class File(models.Model):
    page = models.ForeignKey(Page)
    ....

class FileAdminInline(admin.TabularInline):
    model = File
    extra = 0

class PageAdmin(admin.ModelAdmin):
    inlines = (FileAdminInline,)

2 个答案:

答案 0 :(得分:2)

如果您不是在讨论特定的help_text属性,那么请查看此post,它显示了一种实现此目的的未记录方式。

答案 1 :(得分:-1)

如果您不想将help_text信息放入formset的上下文并修改edit_inline模板,那么有一种方法可以为此目的捕获模型的 verbose_name_plural Meta属性。

基本思路:如果您将该字符串标记为安全,则可以插入任何想到的html元素。例如,一个图像元素,其标题设置为全局模型帮助文本。这可能看起来像这样:

class Meta:
    verbose_name = "Ygritte"
    verbose_name_plural = mark_safe('Ygrittes <img src="' + settings.STATIC_URL + \
                                    'admin/img/icon-unknown.svg" class="help help-tooltip" '
                                    'width="15" height="15" '
                                    'title="You know nothing, Jon Snow"/>')

当然 - 这有点像hacky - 但这很简单,如果你的模型只是作为内联模型访问而你不需要复数详细的其他东西(例如在模型列表中)您的应用程序的管理员概述。)