在Django-REST-Framework中将呈现的内容添加到JSON响应的最简单方法是什么?

时间:2014-01-21 08:15:02

标签: django-rest-framework

我刚刚开始使用DRF,看起来我在文档中有点迷失寻找非常简单的东西:对于我的一些模型,我想将HTML渲染作为一个字段中的片段返回。举个例子,我需要这样的东西(text是一个“普通”字段,而html是使用一些先前定义的模板渲染这个对象):

{ "id": 1, "text": "This is a heading", "html": "<h1>This is a heading</h1>" }

我当然可以为此编写自定义视图,但我非常确定有一些标准的简单方法可以做到这一点。但是它是什么?

1 个答案:

答案 0 :(得分:0)

您可以使用SerializerMethodField

示例序列化器可以是:

class ExampleSerializer(serializers.ModelSerializer):
    html = serializers.SerializerMethodField('get_text_html')

    def get_text_html(self, obj):
        return make_html(obj.text)

    class Meta:
        model = ExampleModel
        fields = ('id', 'text', 'html')

另一种方法是定义custom field。我为数据库中标记的字段执行了此操作,并将HTML表示返回给用户。