【发布时间】:2020-10-13 11:29:02
【问题描述】:
我正在尝试将查询集数据作为 javascript 变量传递给模板。我知道我正在做一些愚蠢但不起作用的事情。
views.py
from django.http import HttpResponse
from django.template import Context,Template,RequestContext
from django.shortcuts import render_to_response, render
from django.conf.urls.static import static
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.template.context_processors import csrf
from io import TextIOWrapper
from django.core.mail import send_mail
from django.utils.safestring import mark_safe
from django.db import connection
import os
import json
import xlrd
from django import forms
from django.forms import ModelForm
from django.db import models
from .models import Deliveries
# Create your views here.
def historicals(request):
context = {}
historicals= Deliveries.objects.all()[1:100]
print (historicals)
context['historicals']=historicals
context['abc']=123
return render(request,'customer.html',context)
然后
customer.html
{% extends "base.html" %}
{% load static %}
<script type="text/javascript">
//{% autoescape off %}{{ historicals }}{% endautoescape %}; <--tried this too
var actuals = {{ historicals | safe }};
var abc = {{ abc | safe }} ;
</script>
<script src="{% static 'js/custom.js' %}"></script>
{% block content %}
{% for i in actuals %}
{{ i.Date }}
{% endfor %}
<h1> {{ abc }} </h1>
{% endblock content %}
这就是混乱。
- 当我打印历史记录时,查询集显示在控制台中。它告诉我模型、与数据库和查询的连接正在工作。
- 我能够将值 'abc' =123 传递给模板,它会正确显示在 customer.html 中
我做错了什么让历史查询集甚至没有出现在模板中(我检查了视图源,它是空白的)但显示了简单的变量?
【问题讨论】:
-
添加
python和django标签 -
刚刚添加的标签
标签: javascript python python-3.x django django-models