是否可以使用javascript从Django models db获取数据?

2024-05-15 08:52:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让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 }}

Tags: 对象django模型dividobjectrequesthtml
2条回答

您必须将公司模型数据序列化为json,这样javascript才能读取它。

因此,您需要有两个模型变量companies(您现在拥有的那个)和companies_json,这两个变量将保存序列化的数据。

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

我还没测试过。

在您看来:

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。

相关问题 更多 >