Django Admin对现有扩展的修改(django_taggit)

时间:2012-05-10 09:43:48

标签: python django admin django-taggit

在Django项目中,我安装了django_taggit扩展。它与Django管理界面很好地集成。我有两个问题:

问题A:flatchoices

我无法在我的可标记模型的列表视图中显示逗号分隔的标记列表。含义:

# models.py
class Topic(models.Model):
    name = models.CharField(max_length=100)
    tags = TaggableManager(blank=True)

# admin.py
class TopicAdmin(admin.ModelAdmin):
    list_display = ('name', 'tags')

admin.site.register(Topic, TopicAdmin)

引发错误:

AttributeError: 'TaggableManager' object has no attribute 'flatchoices'

问题:如何在不更改扩展程序源的情况下添加我需要的功能,以便我仍然可以进行更新?

问题B:prepopulated_fields

如果我导航到“添加标签”管理员视图,我可以添加新标签(当然)。有两个必填字段:名称 slug

我希望slug通过prepopulated_fields = {"slug": ("name",)}进行预处理,这样我就不必手动输入slu。了。

问题:如何添加prepopulated_fields属性?

1 个答案:

答案 0 :(得分:1)

  1. 明智地使用official docs
  2. 为标签创建自己的管理类(继承taggit的管理员),然后使用:

    admin.site.unregister(Tag)
    admin.site.register(Tag, YourTagClass)