2011-07-04 2 views
1

장고에서 태그를 처리하는 응용 프로그램으로 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

관련 문제