django-taggit:在管理后台中使标签不必填

23 投票
2 回答
5788 浏览
提问于 2025-04-16 19:24

我开始使用django-taggit这个工具,它看起来挺合适的。不过我在管理后台遇到了一些问题:

我在ModelAdmin里加了一个tags属性,像这样:

class MyModel(db.models.Model):
    name = models.CharField(max_length=200)
    tags = TaggableManager()

class MyModelAdmin(admin.ModelAdmin):
    fieldsets = (
        (None, {
            'fields': ('name', 'tags')
        }),
    )

一切都按预期进行。但是当我在管理后台编辑一个模型时,如果TagField是空的,就会出现错误。表单似乎对空白没意见,这样就导致没有标签被保存(这也是正常的)。但是空的标签字段却会引发错误。

我该怎么办呢?

2 个回答

0

我不太明白为什么,但是我在一个更新并迁移过的模型上,TaggableManager(blank=True)没有起作用。我不得不把这个加到管理表单中(forms.ModelForm)。

self.fields['tags'].required = False
49

你试过用 tags = TaggableManager(blank=True) 吗?

blank – 这个选项决定了这个字段是否是必填的。

……至少文档是这么说的,你可以去看看

撰写回答