我遇到了一個新的 django 4 應用程式不處理或不允許 POST 方法的問題。我曾經在 Django 版本 3 中通過在 Postman API Tester 中的 url 末尾添加一個斜杠“/”來繞過這個,比如http://127.0.0.1:8000/api/didipay/而不是http://127.0.0.1 :8000/api/didipay . 但是現在在我的 Django 4 API 中,我用斜杠完成了 url,但 POST 方法仍然沒有處理資料。它給了我一個“500 內部服務器錯誤”,我不明白它來自哪里。GET 方法是給出一個空陣列,這是正常的,因為我還沒有在資料庫中插入任何資料。我正在使用 venv、Django 4 Rest 框架、序列化程式、viewSet,這些是我的模型和 API url 配置:
//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 允許:GET、HEAD、OPTIONS 內容型別:application/json 變化:接受
{ "api/didipay": "http://127.0.0.1:8000/api/didipay/" }
甚至允許的方法中缺少 POST,我不明白為什么,因為我授予了 Serialize.py 檔案中的所有權限(還沒有身份驗證系統)。對于您在此問題上的幫助,我將非常感激。先感謝您。
uj5u.com熱心網友回復:
我通過欄位= ('id', 'first_name', 'last_name', 'phone', 'email', 'country', ' currency', 'status', 'payingType')因為重新啟動計算機使控制臺出錯
TypeError:
fields選項必須是串列或元組或“__ all __”
在重新啟動系統之前未顯示。我還懷疑設定fields = '__ all __'而不是fields = '__ all __' (在 stackoverflow 編輯器中使用 __ 存在問題,因為在實際代碼編輯器中使用時它是隱藏的,但總體思路是使用“__”時,“all”周圍不應有空格。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/410317.html
標籤:
下一篇:無法訪問API端點?
