from django.contrib.auth.password_validation import validate_password from rest_framework import serializers from .models import User class UserSerializer(serializers.ModelSerializer): e621_configured = serializers.BooleanField(read_only=True) class Meta: model = User fields = [ "id", "username", "email", "is_staff", "date_joined", "e621_username", "e621_configured", ] read_only_fields = fields class RegisterSerializer(serializers.ModelSerializer): password = serializers.CharField(write_only=True, validators=[validate_password]) class Meta: model = User fields = ["username", "email", "password"] def create(self, validated_data): return User.objects.create_user(**validated_data) class E621CredentialsSerializer(serializers.Serializer): username = serializers.CharField(max_length=100, allow_blank=True) api_key = serializers.CharField( max_length=100, allow_blank=True, trim_whitespace=True ) base_url = serializers.URLField( max_length=200, required=False, allow_blank=True )