Ошибка "Нетип не имеет атрибута" в фреймворке Django rest
У объекта 'NoneType' нет атрибута 'role_access', когда роль - None. Как предотвратить эту ошибку, возвращая только пустой []
class AccessListSerializer(serializers.RelatedField):
def to_representation(self, value):
return value.access.code
class MyInfoSerializer(serializers.ModelSerializer):
approvers = ApproverSerializer(many=True)
email = serializers.EmailField(source="user.email")
username = serializers.CharField(source='user.username')
domain = DomainSerializer()
role = RoleSerializer()
access = AccessListSerializer(
source='role.role_access',many=True, read_only=True)
class Meta:
model = Employee
fields = ['email', 'username', 'role',
'domain', 'approvers', 'access']
Установка значения по умолчанию может решить проблему
access = AccessListSerializer(
source='role.role_access',
many=True,
read_only=True,
default=[]
)