非ORM视图集/序列化程序和可浏览的API表单填充

时间:2014-08-06 22:05:52

标签: django django-rest-framework

我正在使用d-r-f在非ORM端点上工作,其中视图集子类化GenericViewSet和自定义序列化程序。一切正常,因为我使用GenericViewSet,我在可浏览API的底部获得了可编辑的表单。但是(例如)在详细视图中,PUT / PATCH表单不会像常规的基于ORM的视图集那样自动填充。有什么东西我需要覆盖并手动完成吗?或者我还缺少什么才能让它发挥作用?

哦,这些不是non_field_errors或其他任何东西 - 所有序列化程序类型都非常基本。只是没有得到任何自动填充。

自请求以来的示例代码 - 一个简单的序列化程序:

class CircuitNodeBaseSerializer(serializers.Serializer):
    name = serializers.CharField()
    description = serializers.CharField()
    pk = serializers.IntegerField()
    layer = serializers.IntegerField()
    layer_description = serializers.CharField()

非模型视图集覆盖了常用方法:

class CircuitExampleConnectionViewSet(viewsets.GenericViewSet):
    queryset = Circuit.objects.all()
    serializer_class = CircuitNodeBaseSerializer

    def list(self, request):
        nodes = list()
        for c in self.queryset:
            n = get_circuit_node_by_pk(c.id)
            nodes.append(n)
        serializer = CircuitNodeBaseSerializer(nodes, many=True, context={'request': request})
        return Response(serializer.data)


    def retrieve(self, request, pk=None):
        c = get_circuit_node_by_pk(pk)
        serializer = CircuitNodeBaseSerializer(c, context={'request': request})
        return Response(serializer.data)

...etc...

一切正常,但我没有在表单中获得任何自动填充 - 无论是html表单还是原始数据/ json块。

0 个答案:

没有答案