Как отфильтровать набор запросов в Django Admin для отображения только одной записи? - PullRequest
0 голосов
/ 25 июля 2011

У меня в MessageAdmin есть такая функция:

def queryset(self, request):
    user_profile = UserProfile.objects.get(user = request.user.id)
    return Message.objects.all().filter(groups__in = [group_obj.id for group_obj in user_profile.group.all()])

Я хочу вернуть все сообщения, которые имеют ту же группу, что и пользователь. Но при такой конструкции все сообщения возвращаются дважды, если у пользователя более одной группы - поэтому у меня возникает ошибка, когда я пытаюсь открыть любое сообщение.

Редактировать: UserProfile - это расширение для модели User, где я храню все группы с ManyToManyField.

1 Ответ

1 голос
/ 26 июля 2011

Я думаю, вам нужно:

Message.objects.filter(groups__in = [group_obj.id for group_obj in \
    user_profile.group.all()]).distinct()
...