Как отфильтровать ответ в Django - PullRequest
0 голосов
/ 02 февраля 2019

Я создаю тестовые сообщения, ограниченные пользователем.

Я пытаюсь получить сообщение пользователя, но не знаю, как фильтровать данные ответов.

def test_posts_limited_to_user(self):
    """Test retrieving posts for user"""
    user2 = get_user_model().objects.create_user('admin@admin.com', 'adminPASS@123')
    sample_post(user=user2)
    sample_post(user=self.user)

    res = self.client.get(POSTS_URL, {'user': self.user.id})

    posts = Post.objects.filter(user=self.user)
    serializer = PostSerializer(posts, many=True)
    self.assertEqual(res.status_code, status.HTTP_200_OK)
    self.assertEqual(len(posts), 1)
    self.assertEqual(res.data, serializer.data)

но этовернуть все сообщения

1 Ответ

0 голосов
/ 02 февраля 2019

Я разрешаю добавить фильтр в View

def get_queryset(self):
    """Retrieve the posts for the authenticated user"""
    user = self.request.query_params.get('user')
    queryset = self.queryset
    if user:
        queryset = queryset.filter(user=user)

    return queryset.all()
...