如何在Django CoreAPI文档中显示嵌套对象字段

时间:2018-10-17 09:22:58

标签: django-rest-framework core-api

员工通用视图:

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

所以我也想显示User的字段。 是否可以对此进行自定义?

1 个答案:

答案 0 :(得分:0)

我相信实现所需目标的正确方法是分别创建一个用户创建终结点,然后使用“主键相关”字段在Employee Serializer中为用户提供一个字段。

这种特殊情况是在我进行实习并相信我时出现的,您不想使用直接嵌套的用户序列化程序,因为当您尝试制作用于更新Employee的API时,这会带来问题,因为创建用户的控件已转移到Employee端点。

这样,您首先创建用户,然后在注册时Employee可以根据主键分配适当的用户。