簡體   English   中英

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

[英]Django deserialization of JSON stored in a model field

我是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',)

我在模型上使用JSONField

class Obraz(models.Model):
    ...
    goods = jsonfield.JSONField()

串行器上的JSONField (注意它不是同一個字段):

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

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM