2013-02-15 8 views
0

사용자 모델을 분류 모델과 어떻게 링크합니까? 특정 사용자에 대한 용어를 추가하려면 어떻게해야합니까? 어떻게 검색합니까?사용자 모델을 분류 모델과 어떻게 링크합니까?

저는 장고를 처음 접했으므로 제 지식의 부족함과 특정 용어를 아직 모르는 사이에 변명해야합니다.

나는 folowing 모델 마녀가 기본 사용자를 확장 있습니다

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    birthday = models.DateField(blank=True) 
    about_me = models.TextField(blank=True,null=True) 
    avatar = models.ForeignKey(Picture,blank=True, null=True) 
    class Meta: 
     db_table = 'auth_user_profile' 

나는 또한 다음과 같은 분류 모델이 있습니다

class TaxonomyGroup(models.Model): 
    related taxonomy items""" 
    name = models.CharField(max_length=25, db_index=True) 
    slug = AutoSlugField(populate_from='name', unique = True) 

    def __unicode__(self): 
     return u'%s' %self.name 

    class Meta: 
     db_table = 'taxonomies' 
     ordering = ['name'] 

class TaxonomyItem(models.Model): 
    taxonomy_group = models.ForeignKey(TaxonomyGroup, db_index=True) 
    name = models.CharField(max_length=55, db_index=True) 
    slug = AutoSlugField(populate_from='name', unique = True) 

    def __unicode__(self): 
     return u'%s' %self.name 

class TaxonomyMap(models.Model): 
    taxonomy_group = models.ForeignKey(TaxonomyGroup, db_index=True) 
    taxonomy_item = models.ForeignKey(TaxonomyItem, db_index=True) 
    content_type = models.ForeignKey(ContentType, db_index=True) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey('content_type','object_id') 

    objects = TaxonomyManager() 

    class Meta: 
     db_table = 'term2object' 
     unique_together = ('taxonomy_item', 'content_type', 'object_id') 
+0

할 당신의 분류 그룹 모델 – catherine

+0

이유에 사용자 필드를 만들 수 있습니다 검색 'TaxonomyItem' 모델에서'taxonomy_group' 필드가 필요합니다. 그 관계가 이미'TaxonomyMap'에 의해 처리되지 않았습니까? – domino

+0

당신이 옳다고 생각합니다. 고마워요! 나는 곧 당신의 해결책을 시도 할 것입니다. –

답변

0

내가 볼때, 당신은 여러 대를 원한다을 분류와 사용자 모델 간의 많은 관계가 있으므로 UserProfile 모델에 추가 할 수 있습니다. 특정 사용자에 대한 조건을 추가 할 때

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    birthday = models.DateField(blank=True) 
    about_me = models.TextField(blank=True,null=True) 
    avatar = models.ForeignKey(Picture,blank=True, null=True) 
    taxonomies = models.ManyToManyField(TaxonomyItem) 

그럼 당신은 할 수 있습니다 :

taxonomy = TaxonomyItem.objects.create(taxonomy_group=<some_group>, name=<some_name>,...) 
profile = user.get_profile() 
profile.taxonomies.add(taxonomy) 

profile.taxonomies.all()