从ViewSet DJANGO更改对象键

时间:2016-06-24 13:14:16

标签: django django-views django-rest-framework django-serializer

我想将object.key更改为另一个相关值,如下所示:

class SomeViewSet(ModelViewSet):
    queryset = Some.objects.all()
    serialize_class = SomeSerializer
    ....
    def get_queryset(self):
        some_param = self.request.query_params.get("some_param", None)
        if some_param:
            for some in queryset:
                some.fk_another_key = SomeAnother.objects.get(pk=some.fk_another_key.id)

        return queryset

我想要的是将fk__pk更改为" fk对象"。我使用rest-framework,在某些情况下,不能在Serializer中声明"depth""set object"

目前我的结果是json就是这个

{
    ...
    keyX: "",
    keyY: "",
    some_another: 1
    ...
}

我需要这样的一些

{
    ...
    keyX: "",
    keyY: "",
    some_another: {
        ...
        valueX: "",
        valueY: ""
        ...
    }
}

感谢。

1 个答案:

答案 0 :(得分:0)

正确的方法是修改序列化程序,以便使用相应的" SomeAnother"序列化some_another外键。串行化

contentType:"application/json"