2017-10-05 5 views
1

を返す前に、私はserializer.data変更jsonresponse

[ 
    { 
     "id": 2, 
     "url": "https://emiactech.com/", 
     "title": "", 
     "blog_post": 0, 
     "index_count": 0, 
     "external_urls": "[{'url': '#', 'page': 'https://emiactech.com/', 'title': u''}, {'url': 'https://www.facebook.com/EMIACTechnologies/', 'page': 'https://emiactech.com/', 'title': u'Facebook'}, {'url': 'https://twitter.com/emiactech', 'page': 'https://emiactech.com/', 'title': u'Twitter'}, {'url': 'mailto:[email protected]', 'page': 'https://emiactech.com/', 'title': u'[email protected]'}, {'url': 'http://themeforest.net/item/avada-responsive-multipurpose-theme/2833226?ref=ThemeFusion', 'page': 'https://emiactech.com/about-us/', 'title': u''}, {'url': '#tab-bdf4143f2c7b5609720', 'page': 'https://emiactech.com/services/', 'title': u'Web Design and Development'}, {'url': '#tab-70d2572b15f9a5ac477', 'page': 'https://emiactech.com/services/', 'title': u'Content Development'}, {'url': '#tab-c59a00bf26295e6ed39', 'page': 'https://emiactech.com/services/', 'title': u'Digital Marketing'}, {'url': 'https://emiactech.com', 'page': 'https://emiactech.com/cqpim-client/', 'title': u'Home'}, {'url': 'http://themetf.com', 'page': 'https://emiactech.com/portfolio-items/humsafar-love/', 'title': u' theme-tf'}, {'url': 'http://shades.salon', 'page': 'https://emiactech.com/portfolio_category/jquery/', 'title': u'http://shades.salon'}, {'url': 'http://Project%20URL', 'page': 'https://emiactech.com/portfolio_category/jquery/', 'title': u' View Project '}, {'url': 'http://samacharjagat.com', 'page': 'https://emiactech.com/portfolio_category/jquery/', 'title': u'http://samacharjagat.com'}]", 
     "external_count": 13 
    }] 

getting-ています。 external_urlsキーデータは文字列のタイプです。私はこのようなキーのデータをリストや辞書の形で必要とします。

[{'url': '#', 'page': 'https://emiactech.com/', 'title': u''}, {'url': 'https://www.facebook.com/EMIACTechnologies/', 'page': 'https://emiactech.com/', 'title': u'Facebook'}, {'url': 'https://twitter.com/emiactech', 'page': 'https://emiactech.com/', 'title': u'Twitter'}, {'url': 'mailto:[email protected]', 'page': 'https://emiactech.com/', 'title': u'[email protected]'}, {'url': 'http://themeforest.net/item/avada-responsive-multipurpose-theme/2833226?ref=ThemeFusion', 'page': 'https://emiactech.com/about-us/', 'title': u''}, {'url': '#tab-bdf4143f2c7b5609720', 'page': 'https://emiactech.com/services/', 'title': u'Web Design and Development'}, {'url': '#tab-70d2572b15f9a5ac477', 'page': 'https://emiactech.com/services/', 'title': u'Content Development'}, {'url': '#tab-c59a00bf26295e6ed39', 'page': 'https://emiactech.com/services/', 'title': u'Digital Marketing'}, {'url': 'https://emiactech.com', 'page': 'https://emiactech.com/cqpim-client/', 'title': u'Home'}, {'url': 'http://themetf.com', 'page': 'https://emiactech.com/portfolio-items/humsafar-love/', 'title': u' theme-tf'}, {'url': 'http://shades.salon', 'page': 'https://emiactech.com/portfolio_category/jquery/', 'title': u'http://shades.salon'}, {'url': 'http://Project%20URL', 'page': 'https://emiactech.com/portfolio_category/jquery/', 'title': u' View Project '}, {'url': 'http://samacharjagat.com', 'page': 'https://emiactech.com/portfolio_category/jquery/', 'title': u'http://samacharjagat.com'}] 

< --------------------- UPDATE ------------------->

serializer.py

class WebsiteSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Website 
     fields = '__all__' 

models.py

class Website(models.Model): 
    url = models.CharField(max_length=200) 
    title = models.CharField(max_length=255, blank=True,) 
    blog_post = models.IntegerField(default=170, blank=True,) 
    index_count = models.IntegerField(blank=True,) 
    external_urls = models.TextField(blank=True, null=True) 
    external_count = models.IntegerField(blank=True,) 

    class Meta: 
     db_table = "website" 
+0

シリアライザとexternal_urlsフィールドを表示する –

答えて

1

を使用できserializermethodfield

from ast import literal_eval 


class WebsiteSerializer(serializers.ModelSerializer): 
    external_urls = serializers.SerializerMethodField() 

    def get_external_urls(self, obj): 
     # return eval(obj.external_urls) will work 
     return literal_eval(obj.external_urls) 
+0

["["、 "'"、 "u"、 "r"、 "l"、 "'"、 ":" '、 "#"、 "'"、 "、"] "、"] –

+0

モデルフィールドの説明を追加してください –

関連する問題