from rest_framework import serializers from .models import Users, AcademicProfile, ResearchGroup, GroupMembership class UsersGetSerializer(serializers.ModelSerializer): roles = serializers.SerializerMethodField() introduction = serializers.SerializerMethodField() avatar_url = serializers.SerializerMethodField() class Meta: model = Users fields = ['user_id','name', 'roles','avatar_url', 'introduction','create_time', 'update_time','email', 'phone', 'address'] def get_roles(self, obj): # return obj.roles.all() return ['admin'] def get_introduction(self, obj): return 'I am a super administrator' def get_avatar_url(self, obj): if obj.avatar: # 返回绝对URL request = self.context.get('request') return request.build_absolute_uri(obj.avatar.url) return None class UsersPostSerializer(serializers.ModelSerializer): class Meta: model = Users fields = ['name', 'email', 'phone', 'address'] class AcademicProfileGetSerializer(serializers.ModelSerializer): user = UsersGetSerializer(read_only=True) class Meta: model = AcademicProfile fields = ['user', 'degree', 'department', 'university', 'advisor', 'thesis_title', 'thesis_abstract', 'thesis_keywords']