簡體   English   中英

獲取Django模型的JSON表示

[英]Get JSON representation of Django model

假設我有一個Django模型

class Book(models.Model): 
     title = models.CharField()
     author = models.ForeignKey(Author)
     is_on_loan = models.BooleanField()

如何獲取Book的JSON表示? 我可以很容易地寫出像

import json

def get_json(self):
    json_rep = {}
    json_rep['title'] = self.title
    json_rep['author'] = self.author.full_name
    json_rep['is_on_loan'] = self.is_on_loan
    return json.dumps(json_rep)

但有更好的方法嗎?

這稱為序列化。 有django本機序列化程序,你可以在文檔中閱讀它們( https://docs.djangoproject.com/en/1.9/topics/serialization/ ),但基本用法是

from django.core import serializers
data = serializers.serialize("json", YourModel.objects.all())

也就是說,Django序列化程序有一些限制,可能會或可能不會給您帶來問題。

如果您正在使用或考慮使用Django REST Framework,它具有出色,靈活的串行器/解串器架構。 還有其他序列化庫,您可能想要谷歌。

是的,有更好的方法,使用內置的Django JSON序列化程序

from django.core import serializers
json_data = serializers.serialize('json', Book.objects.all())

暫無
暫無

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

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