簡體   English   中英

Django drf ModelSerializer 更新方法上的錯誤

[英]error on Django drf ModelSerializer update method

我有一個很奇怪的錯誤,這是我的序列化器 class

class user_ser(ModelSerializer):
    class Meta:
        model = User
        fields = '__all__'
        depth = 1

每當我發送 API 請求以更新用戶數據時,我都會獲得 is_staff 和 is_superuser 的默認值

在下圖中,我只發送 email 和密碼

例子: 在此處輸入圖像描述

看看我得到了什么:(

這是更新方法的驗證數據: 在此處輸入圖像描述

我沒有在請求正文中添加 is_staff 或其他任何內容,所以為什么會這樣。

這是正常行為; is_staffis_superuser是 Django 中的默認字段,用於授權管理員用戶。 您可以將它們視為數據庫中的列。

真正的問題來自在 Meta class 中使用fields = '__all__' 這是一種反模式,因為您可以公開您不打算公開的字段。 您應該明確顯示您打算使用的字段。

顯式優於隱式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM