1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- 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):
- roles = []
- if obj.roles == 'ADM':
- roles.append('admin')
- else:
- roles.append('editor')
- if obj.developer:
- roles.append('developer')
- return roles
- # 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','role', 'enrollment_year', 'graduation_year', 'department','major','research_tags','skill_tags']
- class AcademicProfilePostSerializer(serializers.ModelSerializer):
- class Meta:
- model = AcademicProfile
- fields = [ 'role', 'enrollment_year', 'graduation_year', 'department','major','research_tags','skill_tags']
|