11

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

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

以下是我的模型及其管理员的一部分:

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,)
4

2 回答 2

5

如果您不是在谈论特定help_text属性,那么请查看这篇文章,它显示了一种未充分记录的实现方式。

于 2013-03-23T20:02:27.140 回答
1

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

基本思想:如果您将该字符串标记为安全,则可以插入您想到的任何 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 - 但这很简单,如果您的模型仅作为内联模型访问并且您不需要复数详细名称来表示其他事物(例如,在应用程序管理中的模型列表中)概述)。

于 2016-10-19T16:12:09.500 回答