12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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']
|