【问题标题】:Django admin do not display all fieldsDjango admin 不显示所有字段
【发布时间】:2021-09-18 21:09:51
【问题描述】:

创建此问题是为了帮助其他有类似问题的人。我知道如何解决这个问题,但我也很感兴趣为什么会这样。

在我的 models.py 中有一个模型

class CEOSetting(models.Model):
    title = models.CharField('Заголовок', help_text='Содержимое тега <title>. Так-же поддерживает переменные.', max_length=200, blank=True)
    page = models.CharField('Описание страницы', max_length=120)
    key = models.CharField('Ключ', max_length=50, unique=True)
    variables = models.TextField('Доступные переменные', null=True, blank=True)
    description = models.TextField('Meta description', blank=True)
    keywords = models.TextField('Meta keywords', blank=True)
    robots = models.TextField('Meta robots', blank=True)

并在admin.py注册了这个模型

@admin.register(CEOSetting)
class CEOSettingAdmin(admin.ModelAdmin):
    pass

当我尝试在管理员中添加或编辑 CEOSetting 记录时,管理员站点只显示一个字段 (title),仅此而已。甚至页面底部的按钮都不见了。

【问题讨论】:

    标签: django django-models django-admin django-modeladmin


    【解决方案1】:

    我尝试了很多不同的方法来找出问题所在,最后明白是title字段的help_text属性中的&lt;title&gt;导致了问题。

    help_text 被渲染时,Django 将&lt;title&gt; 视为打开的标签,一直打开到页面结束。

    我不知道为什么它会以这种方式工作。我记得,help_text 中的值不会自动呈现为安全的 html,但在我看来,这个 &lt;title&gt; 被视为打开的标记并阻止任何后续 html 的呈现。

    【讨论】:

      【解决方案2】:

      从 django.contrib 导入管理员

      将 YourApp.models 导入为模型

      admin.site.register(model.CEOSetting)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-25
        • 1970-01-01
        • 2018-04-01
        • 2016-09-11
        • 2013-05-15
        • 2018-06-17
        相关资源
        最近更新 更多