from django.contrib.auth import get_user_model from rest_framework import serializers from access.models import ExtraPrivilege, Account class AccountSerializer(serializers.ModelSerializer): gender = serializers.SerializerMethodField() class Meta: model = Account exclude = ('owner', 'id', ) @staticmethod def get_gender(self): return self.get_gender_display() class UserInitSerializer(serializers.ModelSerializer): account = serializers.SerializerMethodField() groups = serializers.SerializerMethodField() class Meta: model = get_user_model() fields = ('id', 'email', 'first_name', 'last_name', 'account', 'groups', 'is_staff', 'is_superuser') @staticmethod def get_account(self): return AccountSerializer(self.account).data @staticmethod def get_groups(self): return [group.name for group in self.groups.all()] class ExtraPrivilegeSerializer(serializers.ModelSerializer): class Meta: model = ExtraPrivilege exclude = ('user', )