2013-10-14 1 views
1

나는 태그가 너무장고 - taggit 사용자 정의 '태그'모델과 request.user

class Topics(TagBase): 
    featured = models.BooleanField(_('Featured'), default=False) 

    created = models.DateTimeField(_('Creation date'), auto_now_add=True, editable=False) 
    created_by = models.ForeignKey(User, related_name="topic_created_by") 


class ArticleTopic(ItemBase): 
    content_object = models.ForeignKey('Article') 
    tag = models.ForeignKey(Topics, related_name="topic_items") 


class Article(models.Model): 
    title = models.CharField(_('Title'), max_length=255) 

    excerpt = models.TextField(_('Excerpt')) 
    content = models.TextField(_('Content'), blank=True) 

    topics = TaggableManager(through=ArticleTopic) 

    created = models.DateTimeField(_('Creation date'), auto_now_add=True, editable=False) 
    created_by = models.ForeignKey(User, related_name="article_created_by") 

처럼 장고 - taggit를 사용하여 사용자 정의 태그 모델을 만들었습니다 그래서 생성되었을 때 누구에 의해 추적 할 수있는 요구 사항이 django-autocomplete-light를 사용하여 관리자의 Topics에 대한 자동 완성 필드를 만들고 새 Topic에 입력하면 Article 양식을 저장하는 동안 작성됩니다.

관리자 양식에서 request.user를 가져 와서 save_model 메소드를 통해 전달할 수 있음을 알고 있지만 (이는 내가 Article 모델에 대해 수행하고있는 것입니다.) 주제에 대해 알아낼 수 없습니다. 모델. 사전에

감사

+0

아마도 clean_tags에 있습니까? – jpic

+0

@jpic 아니에요. Article이 저장되기 전이며, Topic은 관계를 생성하기 위해 Article 인스턴스를 필요로한다. 거기에 taggit의 TaggableManager() 기능을 다시 만들어야합니다. – affan

답변

2
나는이 기능을 추가하는 유사한 문제와 포크 장고 - taggit로 실행

: https://github.com/professorplumb/django-taggit

당신은을 통해 사용자 정의에 대한 속성을 추가 또는 태그 모델과 같이 :

article.topics.add('topic1', 'topic2', created_by=request.user) 
+0

이것은 정확하게 필요한 것 같습니다. 감사! 그러나, 나는 그것을 작동시킬 수 없습니다. 오류는'enterprises.companytype : 'topics'는 Topics와 CompanyType'에 대한 외래 키를 가지고 있지 않은 CompanyTopic 모델을 통해 수동으로 정의한 m2m 관계이며'attname'과 관련이 있다고 생각합니다. 그러나 나는 전혀 모른다. 어디로 설정해야합니다. – affan

+0

도움이된다면'GenericTaggedItemBase'를 사용하고 있습니다. – affan

+0

제대로 작동합니다. 안정 버전으로 다시 전환하고 커밋을 포함했습니다. 내 코드와 잘 어울리지 않는 개발 버전에서 변경된 사항을 말할 수는 없지만 앞으로 처리 할 내용입니다. – affan