【发布时间】:2018-04-22 14:02:47
【问题描述】:
我想将 react(或 vue)与 django 模板结合起来,但我不想将后端更改为 restful api。所以我想知道有什么方法可以将Django模型查询集转换为模板中的json或json字符串,以便我可以从jsx或vue中使用的dom中获取数据。
【问题讨论】:
标签: django
我想将 react(或 vue)与 django 模板结合起来,但我不想将后端更改为 restful api。所以我想知道有什么方法可以将Django模型查询集转换为模板中的json或json字符串,以便我可以从jsx或vue中使用的dom中获取数据。
【问题讨论】:
标签: django
要序列化具有核心功能的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 %}
【讨论】:
您可以只使用Django Rest Framework 的serialization 组件。它提供了一个声明式序列化器,比 Django 中的更灵活。
一个额外的好处,如果/当你想提供一个完整的 RESTful API 时,你已经有大量的代码了。
【讨论】: