如何修复发送POST方法时找不到404问题

问题描述 投票:0回答:2

我尝试通过 POSTMAN 将 POST 发送到我的数据库,但收到 404 not Found 状态。这是我的观点和网址。

#views
`class PlantViewSet(ModelViewSet):
    queryset = Plant.objects.all()
    serializer_class = PlantSerializer
    parser_classes = (MultiPartParser, FormParser)

    def create(self, request, *args, **kwargs):
        text = request.data["text"]
        price = request.data["price"]
        picture = request.data["picture"]

        Plant.objects.create(text=text, price=price, picture=picture)
        return Response("Plant created successfully", status=status.HTTP_200_OK)
`
#App.urls
`router = DefaultRouter()
router.register('plants/', views.PlantViewSet)
urlpatterns = [
    path('api/', include(router.urls))
]`

#project.urls
`
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('App.urls'))
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)`

我尝试了 Google、ChatGPT、Youtube,但都没有帮助。请帮忙!

django-rest-framework django-views django-urls django-media
2个回答
0
投票

浏览您在这里提到的内容,您可以做的是检查项目中定义的所有 url,您可以使用“django_extensions”并遵循一个简单的命令,即“python manage.py show_urls”来执行此操作。如果您需要帮助,请检查此线程,How can I list urlpatterns (endpoints) on Django?


0
投票

尝试使用

router.register("plants", PlantViewSet)
。请注意,末尾没有
/
斜杠。如果在 url 末尾添加额外的
/
,它将生成这样的路由

/api/u//{username}/

© www.soinside.com 2019 - 2024. All rights reserved.