【问题标题】:Why I'm getting "Request failed with status code 404"为什么我收到“请求失败,状态码 404”
【发布时间】:2020-10-28 11:30:18
【问题描述】:

views.py

class SearchTodo(viewsets.ModelViewSet):
    serializer_class = todoserializer
    
    def get_queryset(self):
        status = self.kwargs["status"]
        return JsonResponse({"data":Todo.objects.filter(status=status)}, content_type='application/json')

urls.py 用于 rest 框架

router = routers.DefaultRouter()
router.register(r"^todo/(?P<status>\w+)$",views.SearchTodo,"SearchTodo")
router.register(r"todo",views.todoview,"todor")

urlpatterns = [
    path('admin/', admin.site.urls),
    path("api/",include(router.urls))
]

状态为 True 的过滤器对象的 Axios 代码

const data = () => {
    axios
      .get(`http://127.0.0.1:8000/api/todo/True`)
      .then((res) => settasks(res.data))
      .catch((error) => alert(error.message));
  };

但是每当这个函数运行时,我都会收到一个 404 bad request 错误,我错了。

【问题讨论】:

  • get_queryset(...) 应该返回一个 QuerySet 对象。除了QuerySet 对象之外的任何东西迟早都会引发错误
  • @ArakkalAbu 但它说找不到 URL,而不是我可以按照您的建议过滤对象

标签: reactjs django django-rest-framework axios


【解决方案1】:

正如评论中提到的,get_queryset() 方法应该返回一个 QuerySet 对象。

尝试类似的东西

def get_queryset(self):
    status = self.kwargs["status"]
    return Todo.objects.filter(status=status)

【讨论】:

    猜你喜欢
    • 2023-01-21
    • 1970-01-01
    • 2020-04-05
    • 2020-09-18
    • 2021-04-10
    • 2019-10-12
    • 2022-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多