39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
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
|