Как показать поля вложенных объектов в документации Django CoreAPI - PullRequest
0 голосов
/ 17 октября 2018

Общее представление для Employee:

class EmployeeCreateView(generics.CreateAPIView):
    serializer_class = EmployeeSerializer

У меня есть вложенный сериализатор Employee.

class EmployeeSerializer(serializers.ModelSerializer):

    user = UserSerializer(required=True)

    class Meta:
        model = Employee
        fields = ('user','employee_position','join_date')

    def create(self, validated_data):
        """
        Overriding the default create method of the Model serializer.
        :param validated_data: data containing all the details of student
        :return: returns a successfully created student record
        """

        user_data = validated_data.pop('user')
        user = UserSerializer.create(UserSerializer(), validated_data=user_data)
        employee, created = Employee.objects.update_or_create(user=user,
                            join_date=validated_data.pop('join_date'),
                            employee_position=validated_data.pop('employee_position'))
        return employee

Теперь, когда я пытаюсь отобразить этот API в Документах:

enter image description here

Поэтому я хочу также отображать поля для пользователя.Можно ли настроить это?

1 Ответ

0 голосов
/ 17 октября 2018

Я считаю, что правильный способ достижения того, чего вы хотите, - это создать конечную точку создания пользователя отдельно, а затем создать поле для пользователя в сериализаторе сотрудников с помощью поля «Связанный первичный ключ».

Эта конкретная ситуация возникла, когда яЯ проходил стажировку и, поверьте мне, вы не хотите использовать непосредственно вложенный User Serializer, так как это создаст проблему при попытке создать API для обновления Employee, потому что управление созданием User смещается в конечную точку Employee.

Таким образом, вы сначала создаете пользователя, а затем при регистрации Сотрудник может назначить подходящего пользователя в соответствии с Первичным ключом.

...