2011-04-14 5 views
0

UserProfile 모델을 사용자 의견에 어떻게 연결합니까? 내 UserProfileAdmin에서 각 사용자에 대해 # 개의 댓글을 표시하고 싶습니다. 어떤 아이디어?장고에있는 UserProfile의 주석 수 표시

감사합니다.

편집 : 내 모델 :

class UserProfile(models.Model): 
    GENDER_CHOICES = (
         ('M', _('Male')), 
         ('F', _('Female'))) 
    user = models.ForeignKey(User, unique=True) 
    location = models.CharField(max_length=50) 
    gender = models.CharField(max_length=2, choices=GENDER_CHOICES, blank=True, null=True) 
    birthdate = models.DateField(blank=True, null=True) 
    website = models.URLField(blank=True) 
    description = models.TextField(blank=True) 

나는 또한 사용자 프로필을 볼 때 주석의 사용자 목록을 표시하고 싶습니다. 장고의 내장 된 주석 시스템을 사용하고 있기 때문에 이것을 할 수있는 지름길이 있습니까? 아니면 같은 것을해야합니까?

답변

3
UserProfile.user.comment_comments.count() 

그것을해야한다.

당신은 당신의 프로필 모델

def count_comments(self): 
    if self.user: 
     return self.user.comment_comments.count() 

에하는 방법으로이 문제를 포장하고 ModelAdmin의 list_display 옵션 count_comments을 추가 할 수 있습니다.


당신이 사용자의 코멘트 목록을 얻고 싶다면 그에 따라 방법을 조정할 수 :

def get_comments(self): 
    if self.user: 
     return self.user.comment_comments.all() 

그런 다음 당신이 할 수 있습니다

User.objects.get(pk=1).comment_comments.all() 

나 :

UserProfile.objects.get(pk=1).get_comments() 
+0

답변 해 주셔서 감사합니다! 왜 comment_comments입니까? – rabbid

+0

환상적! 감사! – rabbid

+0

방금 ​​UserProfileAdmin의 필드에 get_comments()를 추가하려고했는데 허용되지 않는 것 같군요? 나는 관리자 측면에서 사용자의 의견 목록을 표시하려고합니다. 나는 코멘트에서 직접적으로 필터링함으로써 그렇게 할 수 있다는 것을 알고 있지만, 나는 그것을 시도해 볼 것이라고 생각했다. 편집 : 분명히 내가 틀렸다. 사용자가 댓글에서 필터링 할 수 없습니다. 적어도 댓글에 대한 기본 관리자 목록은 삭제되지 않았습니다. – rabbid

1

admin을 등록하는 동안 (또는 사용자 정의를 만드는 경우) UserComments.filter(user).count()과 같은 필드를 사용하면 모델이 어떻게 보이는지 알 수 없습니다. 그러나 주요 아이디어는 특정 사용자의 의견에 해당 필드를 연결하고 .count()을 사용하는 것입니다. 더 많은 코드를 제공한다면 내 대답을 업데이트 할 수 있습니다.

업데이트 : 죄송합니다. 문서를 잊어 버렸습니다. http://docs.djangoproject.com/en/dev/ref/models/querysets/#count
필터 : http://docs.djangoproject.com/en/dev/ref/models/querysets/#filter
등록 관리를위한 : .count()를 들어 http://docs.djangoproject.com/en/dev/ref/contrib/admin/

+0

답변 해 주셔서 감사합니다. 내 질문을 코드 및 다른 질문으로 업데이트했습니다. – rabbid

관련 문제