2015-08-27 45 views
0

我有一个ID和一个标签的模型:如何使用不同的字段名称序列化模型?

class Widget(models.Model): 
    label = models.TextField() 

我想要序列标签和ID,所以我有这样的串行:

class WidgetSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = Widget 
     fields = ('id', 'label') 

这给了我一个序列化像{"id": 61, "label": "Super Widget"}。不过,我需要给序列化不同的标签(例如{"widget_id": 61, "widget_name": "Super Widget"})而不更改模型,因为它在不同的地方使用。有没有办法告诉序列化器使用不同的标签序列化一个字段?

回答

1

我认为你不能通过“serializers.ModelSerializer”来实现,但你可以通过“serializers.Serializer”来实现。

尝试这样:

class CommentSerializer(serializers.Serializer): 
    id = serializers.IntegerField(label="widget_id") 
    label = serializers.CharField(label="widget_name") 

欲了解更多信息:http://www.django-rest-framework.org/api-guide/fields/#serializer-fields 而对于一些例子:http://hackersome.com/p/jezdez/django-serializers

相关问题