存储在模型字段中的Djang的Django反序列化

时间:2016-08-23 07:29:59

标签: python json django serialization django-rest-framework

我是Django / Python的新手,目前正与朋友一起开展项目。他的Android应用程序以JSON格式向我发送数据,如下所示:

"datum_isteka": "2",
"e_mail": "null",
"adress": "null",
"goods": "[
           {\"price\":\"2\",
            \"good\":\"dobro1\",
            \"tax_value\":\"2\",
            \"quantity\":\"pdv %1\"},

           {\"price\":\"3\",
            \"good\":\"dobro 2\",
            \"tax_value\":\"3\",
            \"quantity\":\"pdv %3\"}
          ]",
"taxes": 5,
"order_num": 477456,
"store_user": 2

在我的模型中,它存储在一个字段(goods)中,在我的视图中,我得到的这个JSON的整个goods部分就像这样代表...我的问题是如何做我将此JSON字段goods转换为用户可读的内容。我使用DRF与Android应用程序进行通信。

型号:

class Obraz(models.Model):
    datum_isteka = models.CharField(max_length=100,blank=True,
                                    default='', null=True)
    e_mail = models.CharField(max_length=100, blank=True, 
                              default='', null=True)
    adress = models.CharField(max_length=100, blank=True, null=True)
    taxes = models.CharField(max_length=100)
    order_num = models.CharField(max_length=100, blank=True, default='',
                                 null=True)
    goods = models.CharField(max_length=10000)
    store_user=models.ForeignKey(Owner, default='Owner')

模型序列化器:

class ObrazSerializer(serializers.ModelSerializer):
    class Meta:
        model = Obraz
        fields = ('datum_isteka', 'e_mail', 'adress', 'taxes', 
                  'order_num','goods ', 'store_user',)

1 个答案:

答案 0 :(得分:0)

我在模型上使用this one

class Obraz(models.Model):
    ...
    goods = jsonfield.JSONField()
串行器上的

Let's Encrypt community(注意它不是同一个字段):

class ObrazSerializer(serializers.ModelSerializer):
    goods = serializers.JSONField()
    class Meta:
        model = Obraz
        fields = ('datum_isteka', 'e_mail', 'adress', 'taxes', 
                  'order_num','goods', 'store_user',)

希望这会有所帮助