我正在创建一个仅限用户的测试帖子。
我尝试获取用户帖子,但我不知道如何过滤响应数据。
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)
但它返回所有帖子
答案 0 :(得分:0)
我通过在视图中添加过滤器来解决它
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()