# serializers.py
from .models import User
from .policy import password_policy
from rest_framework import serializers
from django.contrib.auth.hashers import make_password
class UserSerializer(serializers.ModelSerializer):
def validate(self, data):
errs = password_policy.test(data["password"])
if errs:
raise serializers.ValidationError(
{"password": [str(err) for err in errs]})
return data
class Meta:
model = User
fields = "__all__"
def create(self, validated_data):
validated_data["is_active"] = True
validated_data["password"] = make_password(validated_data["password"])
return super(UserSerializer, self).create(validated_data)
An example response is from API.
{
"password": [
"Your password must be a minimum of 8 characters."
]
}
Hi, I have added str dunders that could be useful for Python web developers.
An example response is from API.