1

Django 内でタグを処理するためのアプリケーションとしての django-taggit の実装には、本当に感銘を受けました。ただし、オブジェクトに適用できるタグの最大数を設定する方法を見つけることができませんでした。これは可能ですか?たとえば、オブジェクトごとに 5 つのタグのみにアプリケーションを制限したいと考えています。

ありがとう、

J

4

2 に答える 2

5

私は管理者モデルでこれを解決しました:

class MyObjectAdminForm(forms.ModelForm):
    class Meta:
        model = MyModel

    def clean_tags(self):
        tags = self.cleaned_data['tags']
        if len(tags) > 3:
            raise ValidationError("....")
        return tags

class MyObjectAdmin(admin.ModelAdmin):
    form = MyObjectAdminForm
于 2011-09-12T09:27:12.173 に答える
1

TaggableManager は、変更が必要なメソッドを持つ内部_TaggableManageraddを使用します。

まず、メソッドを拡張_TaggableManagerおよび変更して、add使用されているタグの数を確認し、それに応じてタグのリストを変更する必要があります。

次に、カスタムを使用するように拡張TaggableManangerおよびオーバーライドする必要があります。__get___TaggableManager

于 2011-07-04T17:32:53.937 に答える