2015-08-27 70 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

相關問題