from rest_framework import serializers from django.contrib.auth import get_user_model User = get_user_model() class RegisterSerializer(serializers.ModelSerializer): password = serializers.CharField(write_only=True, min_length=6) class Meta: model = User fields = ['username', 'email', 'phone', 'password'] def create(self, validated_data): return User.objects.create_user(**validated_data, role='seeker') class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields = ['id', 'username', 'email', 'phone', 'role', 'organization'] read_only_fields = ['role'] class AdminUserSerializer(serializers.ModelSerializer): """超管用于创建/管理公司管理员账号""" password = serializers.CharField(write_only=True, min_length=6) class Meta: model = User fields = ['id', 'username', 'email', 'phone', 'role', 'organization', 'password', 'is_active'] def create(self, validated_data): password = validated_data.pop('password') user = User(**validated_data) user.set_password(password) user.save() return user