无法通过 Postman 向 Django 发送 GET 请求

时间:2021-03-27 20:56:34

标签: python django postman

我执行请求 http://167.71.57.114/api/users/list-exercises 并收到错误

<块引用>

用户匹配查询不存在。

我该如何修复错误?

发现错误原因是请求没有数据

但是你可以看到我正在发送“user_id”

enter image description here

我的代码

class WorkoutUserProgramListViewAPI(GenericAPIView):
    permission_classes = (IsAuthenticated,)
    serializer_class = WorkoutUserProgramListSerializer

    def get(self, request):
        response = {}
        user = request.data.get("user_id") # user is None
        user = User.objects.get(pk=user) # Error User matching query does not exist.

2 个答案:

答案 0 :(得分:0)

就像@Klaus D 在评论中所说的,您宁愿将用户 ID 作为参数。如果您发送 user_id=29,我会将其添加为参数,该参数应将 URL 更改为类似

http://167.71.57.114/api/users/list-exercises?user_id=29

答案 1 :(得分:0)

objects.get 方法未找到任何结果时,会发生该错误。 如果您使用 filter 并验证结果不是 None ,则在参数传递的 id 不属于任何用户的情况下,您可以避免该错误。

class WorkoutUserProgramListViewAPI(GenericAPIView):
    permission_classes = (IsAuthenticated,)
    serializer_class = WorkoutUserProgramListSerializer

    def get(self, request):
        response = {}
        user_id = request.data.get("user_id")
        user = User.objects.filter(pk=user_id).first()
        if user is not None:
            # code
        else:
            # code

也听听 Klaus D. 告诉你的。