欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

django序列化嵌套json

方一強2年前7瀏覽0評論

在使用Django進行開發的過程中,有時候需要將一些 complex object 轉換成 JSON 格式,從而便于在前端進行處理。在 Django 中,有一個非常方便的方法可以實現這種 JSON 數據的嵌套結構。

首先需要在視圖函數中使用 Django 的序列化模塊:

from django.core import serializers
def my_view(request):
# your view code here
data = serializers.serialize('json', MyModel.objects.all())
# rest of your view code here

上述代碼將 MyModel 中的所有數據以 JSON 格式返回,但是如果需要嵌套一些外鍵等關系,可以使用 Django 的 Serializer class 來實現:

from django.core import serializers
from django.core.serializers.json import DjangoJSONEncoder
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
class MyModelDetailView(View):
model = MyModel
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(MyModelDetailView, self).dispatch(request, *args, **kwargs)
def get(self, request, pk, format=None):
m_obj = self.model.objects.get(pk=pk)
data = serializers.serialize('python', [m_obj])[0]
data['related'] = serializers.serialize('python', m_obj.related.all())
json_data = json.dumps(data, cls=DjangoJSONEncoder)
return HttpResponse(json_data, content_type='application/json')

上述代碼將相應的 model 以 python 形式進行序列化,并添加一個 related 屬性,并將數據轉換成 JSON 格式返回。