我刚刚开始使用DRF,看起来我在文档中有点迷失寻找非常简单的东西:对于我的一些模型,我想将HTML渲染作为一个字段中的片段返回。举个例子,我需要这样的东西(text
是一个“普通”字段,而html
是使用一些先前定义的模板渲染这个对象):
{
"id": 1,
"text": "This is a heading",
"html": "<h1>This is a heading</h1>"
}
我当然可以为此编写自定义视图,但我非常确定有一些标准的简单方法可以做到这一点。但是它是什么?
答案 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表示返回给用户。