2
的項目我有一個序列化器類:Django的REST框架UniqueValidator擲錯誤時更新舊數據
class AdministratorCreateUpdateSerializer(ModelSerializer):
class Meta:
model = Administrator
fields = [
'username',
'email',
'password',
'first_name',
'last_name',
]
username = serializers.CharField(
source='user.username',
validators=[UniqueValidator(queryset=User.objects.all())]
)
email = serializers.EmailField(
source='user.email',
validators=[UniqueValidator(queryset=User.objects.all())]
)
password = serializers.CharField(
source='user.password',
allow_blank=True,
style={'input_type': 'password'}
)
first_name = serializers.CharField(
source='user.first_name'
)
last_name = serializers.CharField(
source='user.last_name'
)
當我創建新管理員的用戶名和電子郵件工作的驗證很好。
但是當我更新數據。我只是簡單地填寫舊數據並保存,但驗證者說用戶名和電子郵件必須是唯一的。
如何更改此驗證程序只有在用不等於舊值的新值更新時才執行?