2014-10-04 25 views
-1

我正在使用Django友誼的系統上,我使用了下面的模型:如何在Django中返回對象的屬性?

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"] 

當我試圖讓所有狀態=「0」,在這樣的掛起的請求:

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)) 

我只是得到對象「發件人」的號碼,而不是所有的屬性。我想得到的是用戶(在這種情況下爲發件人)對象的字段,如「name」和「fb_user_id」。如果我沒有指定「發件人」字段,我仍然會得到帶有時間戳的對象號碼。

回答

1

如果你想要的用戶屬性,你應該查詢,而不是友誼。

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

你是什麼意思由friendship_sender_receiver?班級友誼有一個發送者和一個接收者。我的目標是讓所有對象「sender」(用戶的外鍵)顯示姓名和ID。當我第一次查詢Friendship時,我得到了發件人,但後來我不知道如何查詢User以獲取應該在pending_request.sender中的所有數據。 – 2014-10-08 13:46:29

+1

用戶具有屬性'friendship_sender',因爲這是Friendship.sender的相關名稱。友誼有一個屬性「接收者」。雙下劃線是您跨連接查詢的方式。 – 2014-10-08 13:49:24

+0

好吧,它更有意義,但我怎樣才能加入?我的意思是在這種情況下,我得到一個錯誤,因爲用戶沒有狀態字段,這是友誼。 – 2014-10-08 13:53:08