【问题标题】:Is there any way convert Django model queryset to json or json string in template?有没有办法将 Django 模型查询集转换为模板中的 json 或 json 字符串?
【发布时间】:2018-04-22 14:02:47
【问题描述】:

我想将 react(或 vue)与 django 模板结合起来,但我不想将后端更改为 restful api。所以我想知道有什么方法可以将Django模型查询集转换为模板中的json或json字符串,以便我可以从jsx或vue中使用的dom中获取数据。

【问题讨论】:

标签: django


【解决方案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 Frameworkserialization 组件。它提供了一个声明式序列化器,比 Django 中的更灵活。

    一个额外的好处,如果/当你想提供一个完整的 RESTful API 时,你已经有大量的代码了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 2016-01-13
      • 2015-12-03
      相关资源
      最近更新 更多