2016-02-10 9 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 для u в request.user.user_set.all()], и у вас есть список, который вы хотите. – Maciek

ответ

0

Вы не могли бы быть в состоянии получить целые пользовательские объекты в одном запросе, но вы можете получить идентификаторы соответствующей user2:

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() и так далее.

Смежные вопросы