我正在研究要呼叫的API驗證錯誤。在進行新的 "POST "呼叫時,我必須確保2個日期不重疊,這一點是正常的。我正在進行model.objects.Filter()查詢,如果有東西被回傳,我就回傳一個驗證錯誤。然而,我想只在POST請求中回傳這個錯誤。我已經嘗試了
如果 request.method == "POST":
做一些事情
但是我在 "request "一詞下得到了錯誤,說 "request "沒有被定義。有沒有其他方法在驗證期間檢查方法型別?我正在我的序列化器中這樣做。謝謝!
uj5u.com熱心網友回復:
你可以從你的視圖中將請求背景關系傳遞給序列化器:
serializer = SomeSerializer(context={'request'/span>:request}, data=request.data)
在你的序列化器中,你可以這樣訪問請求方法:
self.context['request'].method
uj5u.com熱心網友回復:
使用一個以上的序列化器,并重新定義get_serializer_class一個drf函式在你的視圖下
def get_serializer_class(self)。
if self.request.method == 'POST'/span>:
return PostSerializer
return OtherMethodsSerializer
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/332346.html
標籤:
