2011-07-04 3 views
1

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

おかげで、

J TaggableManagerは、あなたが変更する必要がありますadd方法を持っている内部_TaggableManager使用

答えて

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 
+0

ああ、それはかなりきちんとしている!良いですね。 – jvc26

+0

@ jvc26:ありがとう! :) – vdboor

1

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

TaggableManangerを拡張して__get__を上書きし、カスタム_TaggableManagerを使用する必要があります。

+0

感謝やヘルプ! – jvc26

関連する問題