获取列表相关对象

时间:2016-02-10 13:37:04

标签: python django

我有模特(这是多对多关系):

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字段。

2 个答案:

答案 0 :(得分:0)

您可能无法在一个查询中获取整个用户对象,但您可以获取相关user2的ID:

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

如果你真的需要整个对象,你可以再做一步:

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

答案 1 :(得分:0)

同时为user2属性related_name

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

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