2014-10-04 2 views
-1

나는 장고와 우정 시스템에서 일하고 나는 다음과 같은 모델을 사용하고 있습니다 :어떻게 장고에서 객체의 속성을 반환합니까?

def friendship_pending(request): 
    to_user = User.objects.get(fb_user_id=request.session['fb_user_id']) 
    pending_requests = (Friendship.objects.filter(receiver=to_user, status='0')) 
    data = serializers.serialize('xml', pending_requests, fields=('sender')) 
    return HttpResponse(json.dumps(data)) 
: 나는 상태 = "0"이 방법으로 모든 보류중인 요청을받을 때

class Friendship(models.Model): 
    sender = models.ForeignKey(User, related_name='friendship_sender') 
    receiver = models.ForeignKey(User, related_name='friendship_receiver') 
    status = models.IntegerField(max_length=1) 
    created_at = models.DateTimeField(auto_now=True) 
    class Meta: 
    unique_together = ["sender", "receiver"] 

나는 모든 속성이 아니라 "송신자"객체의 번호를 얻는다. 내가 얻고 자하는 것은 "이름"과 "fb_user_id"와 같은 User (이 경우에는 발신자) 개체의 필드입니다. "보낸 사람"필드를 지정하지 않으면 타임 스탬프가있는 개체 번호가 계속 표시됩니다.

답변

1

사용자 속성을 원한다면 친구 속성이 아닌 사용자 속성을 쿼리해야합니다.

User.objects.filter(friendship_sender__receiver=to_user, friendship_sender__status='0') 
+0

friendship_sender_receiver의 의미는 무엇입니까? Friendship 클래스에는 보낸 사람과받는 사람이 있습니다. 내 목표는 사용자의 외래 키인 모든 개체 "보낸 사람"을 이름, 성 및 ID를 표시하는 것입니다. 우정을 처음 쿼리 할 때 보낸 사람을 얻지 만 pending_request.sender에 있어야하는 모든 데이터를 얻기 위해 사용자에게 쿼리하는 방법을 알지 못합니다. –

+1

사용자는 Friendship.sender의 관련 이름이기 때문에 'friendship_sender'속성을 가지고 있습니다. 우정에는 '수신자'라는 속성이 있습니다. 이중 밑줄은 조인을 통해 쿼리하는 방법입니다. –

+0

좋아, 더 이해가되지만 어떻게 나 역시 참여를합니까? 나는 사용자가 우정에있는 상태 필드가 없기 때문에이 경우에 오류가 발생한다는 것을 의미합니다. –

관련 문제