Django REST: произвольное поле, список не может быть пустым - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь добавить поле сотрудников в свою пользовательскую модель в Django REST 2.2. Это - вот как я реализовал своего настраиваемого пользователя (первый ответ). Поле сотрудников - это просто список настраиваемых пользователей (так что оно связано с самим собой с помощью отношения «многие ко многим»).

Когда я пытаюсь добавить настраиваемую модель пользователя из интерфейса django, оно говорит: «этот список не может быть пустым». Как сделать так, чтобы оно было пустым? Я думал, что это то, что я добавил для "required = False".

введите описание изображения здесь

users / models.py

class CustomUser(AbstractUser):
    employees = models.ManyToManyField("self", related_name='employees')

users / serializers.py (CustomRegisterSerializer используется для регистрации в rest-auth , CustomUserSerializer используется для просмотра и редактирования)

class CustomRegisterSerializer(RegisterSerializer):
        employees = serializers.RelatedField(many=True, required=False, queryset=CustomUser.objects.all())

        def get_cleaned_data(self):
            data_dict = super().get_cleaned_data()
            data_dict['employees'] = self.validated_data.get('employees', '')
            return data_dict

class CustomUserSerializer(serializers.ModelSerializer):
    class Meta:
        model = CustomUser
        fields = ('id', 'email', 'employees')

users / views.py

class CustomUserViewSet(viewsets.ModelViewSet):
    queryset = CustomUser.objects.all()
    serializer_class = CustomUserSerializer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...