2012-02-14 101 views
1

我在用戶配置文件模型中遇到了與用戶相關字段的問題。Django中的用戶和用戶配置文件對象

我有這個場在我的用戶配置模式:

friends = models.ManyToManyField(User, null=True) 

當我打電話

User.objects.get(pk=234).get_profile().friends.all() 

我得到的一組朋友,用戶對象

當我打電話

User.objects.get(pk=234).friends_set.all() 

我得到一個UserProfile對象的列表。

有沒有一種方法(不改變與UserProfile對象的關係)來獲取作爲User或UserProfile返回的關係的每一側?

編輯:

對不起,我想通了,我試圖做這樣的困惑:

user = User.objects.get(pk=234) 
User.objects.filter(userprofile__friends=user).all() 
+0

我不明白你的問題。你想要用戶對象或UserProfiles? – Sid 2012-02-14 21:42:24

+0

我想要麼 - 只要我可以得到關係的每一方相同。現在我只能獲得一側的用戶配置文件和另一側的用戶。 – 2012-02-14 21:43:59

回答

1

我認爲,這是選擇UserProfile對象這是朋友給定用戶的方式:

UserProfile.objects.filter(friends__user = 234) 

這裏是User對象爲同一組的用戶:

User.objects.filter(userprofile__friends__user = 234) 
+0

對不起,我在我的問題有一個錯字 - 我得到關係的一方作爲User對象,另一方作爲UserProfile。我如何以UserProfile的身份獲得雙方的關係? – 2012-02-14 21:37:51

1

這不僅僅是一種關係,所以不僅僅是你正在考慮的雙方。用戶與配置文件對象(FK)有關係,另一個用戶與多個用戶對象(M2M)有關係。

相關問題