2016-02-10 118 views
-1

我有一個像(它是多對多關係)模式:獲取列表相關的對象

class User(models.Model): 
    name = moddels.CharField(max_length=255) 

class MyModel(models.Model): 
    user1 = models.ForeignKey(User, related_name='user_set') 
    user2 = models.ForeignKey(User) 

我想要得到這關係到user2領域的一些用戶列表對象。我怎麼能做到這一點?

我無法使用ManyToMany字段。

+0

你的問題不是很清楚,你是什麼意思'得到一些與user2字段相關的用戶列表對象? –

+0

我想要像'request.user.user_set.get_related_users()'一樣使用它,它必須返回所有'user2',其中'user1 = request.user' – Nikitka

+0

使用給定的代碼,你可以這樣做:[u.user2 for u in request.user.user_set.all()]並擁有你想要的列表。 – Maciek

回答

0

你可能無法得到一個查詢整個用戶對象,但你可以得到相關user2的ID:

user2_ids = request.user.user_set.all().values_list('user2', flat=True).distinct() 

如果你真的需要整個的對象,你可以做一個步驟:

user2s = User.objects.filter(id__in=user2_ids) 
0

給所述user2屬性一個related_name以及:

user2 = models.ForeignKey(User, related_name='user2s') 

然後你可以使用user.user2s.all()等等找到它們。