[英]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.