繁体   English   中英

是否可以使用javascript从Django模型数据库中获取数据?

[英]is it possible to use javascript to get data from django models db?

我试图让Django模型对象显示在html页面上。 当然,当我尝试使用{{object}}时,会出现错误。

如何正确获取Django数据模型并使用javascript处理属性?

网址:

('^all_companies$', 'companies.views.all_companies')

风景:

def all_companies(request): 
    companies = Company.objects.all().order_by('id')[:5];   
    return direct_to_template(request, 'all_companies.html', {'companies': companies} );

HTML:

{% block sidebar %}
    <div id="sidebar">
        <!-- like google maps, short list of company info -->
        <ul>
            {% for comp in companies %}
                <li>{{ comp }}</li>                 
            {% endfor %}
        </ul>
    </div>
{% endblock %}

js:

var tmp = {{ companies }}

您认为:

from django.core import serializers
json_serializer = serializers.get_serializer("json")()
companies = json_serializer.serialize(Company.objects.all().order_by('id')[:5], ensure_ascii=False)

在模板中:

var companies = '{{ companies|escapejs }}';

这仅用于将数据模型导入JS。 为了操纵它们,您应该创建一些视图,这些视图将从JS(由AJAX)调用。 他们可能应该返回JSON。 查看http://djangosnippets.org/snippets/622/http://djangosnippets.org/snippets/2102/ ,了解如何仅从视图中仅返回JSON。

您必须将公司的模型数据序列化为json,以便javascript能够读取它。

因此,您将需要有两个模型变量,公司(您现在拥有一个)和公司_json,它们将保存序列化的数据。

from django.core import serializers
companies_json = serializers.serialize("json", Company.objects.all())

我还没有测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM