有没有办法将 Django 模型查询集转换为模板中的 json 或 json 字符串?
Posted
技术标签:
【中文标题】有没有办法将 Django 模型查询集转换为模板中的 json 或 json 字符串?【英文标题】:Is there any way convert Django model queryset to json or json string in template? 【发布时间】:2018-04-22 14:02:47 【问题描述】:我想将 react(或 vue)与 django 模板结合起来,但我不想将后端更改为 restful api。所以我想知道有什么方法可以将Django模型查询集转换为模板中的json或json字符串,以便我可以从jsx或vue中使用的dom中获取数据。
【问题讨论】:
Output Django queryset as JSON的可能重复 【参考方案1】:要序列化具有核心功能的Django
查询集,请查看here:
from django.core.serializers import serialize
from models import MyModel
serialize('json', MyModel.objects.all())
要访问模板中的JSON
,而不使用REST API
资源或AJAX
,请利用custom template tags/filters。
tags.py
:
from django.template import Library
register = Library()
@register.filter
def json(queryset):
return serialize('json', queryset)
html 模板:
% load tags %
% users|json %
【讨论】:
【参考方案2】:您可以只使用Django Rest Framework 的serialization 组件。它提供了一个声明式序列化器,比 Django 中的更灵活。
一个额外的好处,如果/当你想提供一个完整的 RESTful API 时,你已经有大量的代码了。
【讨论】:
以上是关于有没有办法将 Django 模型查询集转换为模板中的 json 或 json 字符串?的主要内容,如果未能解决你的问题,请参考以下文章