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

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

非常感谢

【问题讨论】:

  • 你试过prepopulated-fields吗?

标签: django django-admin slug


【解决方案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
    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 2011-06-12
    • 2012-09-02
    • 2021-07-28
    • 2023-01-13
    • 2013-01-05
    • 1970-01-01
    • 2011-05-09
    相关资源
    最近更新 更多