不能在 Django 4 Rest Framework 中使用 POST 方法

Can not use POST method with Django 4 Rest Framework

我遇到新的 django 4 应用程序未处理或不允许 POST 方法的问题。我曾经在 Django 版本 3 中通过在 Postman API Tester 中的 url 末尾添加一个尾部斜杠“/”来绕过这个 http://127.0.0.1:8000/api/didipay/ instead of http://127.0.0.1:8000/api/didipay 。但是现在在我的 Django 4 API 中我用斜杠完成了 url 但是 POST 方法仍然没有处理数据。它给了我一个 “500 内部服务器错误”,我不明白它是从哪里来的。 GET 方法宁愿给出一个空数组,这是正常的,因为我还没有在数据库中插入任何数据。我正在使用 venv、Django 4 Rest 框架、序列化程序、viewSet,这些是我的模型和 API urls 配置:

//Serialize.py
from rest_framework.decorators import permission_classes
from didipay_app.models import Didipay_app
from rest_framework import viewsets, permissions
from .serializers import Didipay_appSerializer

class Didipay_appViewSet(viewsets.ModelViewSet):
    queryset = Didipay_app.objects.all()
    permission_classes = [
        permissions.AllowAny
    ]
    serializer_class = Didipay_appSerializer

//项目文件夹的urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('', include('didipay_app.urls')),
]

// App文件夹的urls.py

from rest_framework import routers, urlpatterns
from .api import Didipay_appViewSet

router = routers.DefaultRouter()
router.register('api/didipay', Didipay_appViewSet, 'didipay')

urlpatterns = router.urls

应用程序的网页显示:

HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept

{ "api/didipay": "http://127.0.0.1:8000/api/didipay/" }

并且 POST 甚至在允许的方法中缺失,我不明白为什么,因为我在 Serialize.py 文件中授予了所有权限(还没有身份验证系统)。 我将非常感谢你在这个问题上的帮助。提前谢谢你。

我通过 fields = ('id', 'first_name', 'last_name', 'phone', 'email', 'country', 'currency', 'status', 'payingType') 因为重新启动计算机使控制台出错

TypeError: The fields option must be a list or tuple or "__ all __"

重启系统前没有显示。我还怀疑设置了 fields = '__ all __' 而不是 fields = '__ all __' (关于在Whosebug 编辑器,因为它在真正的代码编辑器中使用时是隐藏的,但总体思路是使用“__”时“all”周围不应该有空格。