autoslugfield 进入 django-admin 界面?

Posted

技术标签:

【中文标题】autoslugfield 进入 django-admin 界面?【英文标题】:autoslugfield into django-admin interface? 【发布时间】:2014-10-31 09:03:55 【问题描述】:

有没有办法将 django-autoslug 中的 autoslugfield 集成到 Django-admin 界面中? 我尝试将它作为“slug”放在 list_display 中,但它没有显示在 django-admin 界面中。

非常感谢

【问题讨论】:

你试过prepopulated-fields吗? 【参考方案1】:

这是一个老问题,但也许有人会发现这个答案很有用 在管理界面中显示(并使其可编辑)

所有你需要做的设置可编辑=真

slug = AutoSlugField(populate_from='title', editable=True, blank=True)

现在只有当 slug 没有被填充时它才会自动生成……而且 pupulated_from 中也没有重新生成 slug。

【讨论】:

【参考方案2】:

为什么要将它添加到管理界面中?无论如何它不应该是可编辑的。

您可以将其添加为只读字段。

class MyModelAdmin(admin.ModelAdmin):
   list_display = ('slug',)
   readonly_fields = ('slug',)

【讨论】:

为什么它应该是可编辑的?因为如果您更改名称/标题字段,您希望更新 slug 以匹配。我们可以假设站点管理员知道这会破坏指向使用 slugfield 的任何 URL 的传入链接,但最好给管理员权力而不是把它拿走。 @shacker:如果你想拥有控制权,你不应该使用auto-slug。但是,有很多简单的方法可以绕过它。我能想到的最简单的方法是定义另一个仅包含 slug 的非托管模型,在这种情况下,它不应该是 auto-slug 字段,而是简单的 Django SlugField

以上是关于autoslugfield 进入 django-admin 界面?的主要内容,如果未能解决你的问题,请参考以下文章

Django AutoSlugField 不考虑通过 Django Safe Delete 软删除的实例

flask--Django 基本使用

使用模型属性的 ModelSerializer

django 1.10 一个带有链接的应用页面重定向到另一个应用页面

如何进入Recovery模式 安卓手机进入Recovery模式方法大全

Linux系统无法进入图形界面