javascript - django中使用javascript的变量字典
问题描述
我正在将可变大小的字典传递给 html,并且在 html 中我有一个脚本(javascript),我需要在另一个脚本中创建一个。通过代码,您可以了解我需要什么。
我需要将每个“考试”传递给特定的“客户”。
HTML 文件:
<p id="dependentes"></p>
{% for obj in object3 %}
<div>
<ul><p>Exames de {{ obj.id_cliente1 }}: </p>
<div id="iteracao"></div>
</ul>
</div>
<script type="text/javascript">
var cliente1 = "{{ obj.id_cliente1 }}";
var teste = document.getElementById('teste');
cliente2 = teste.value;
cliente2 = cliente2.replace(" ", "_");
document.getElementById('iteracao').textContent = "\{\% for obj2 in " + cliente2 + " \%\}" + "<li><a href='/exames/\{\{ obj2.slug \}\}/'>\{\{ obj2.nome \}\}</a></li>" + "\n" + "\{\% endfor \%\}";
//JSON.parse(document.getElementById('iteracao').textContent);
var a = document.getElementById('dependentes`enter code here`');
if (cliente1 != "None"){
a.innerHTML = "Dependentes: ";
}
</script>
{% endfor %}
查看文件:
类 ClienteDetailView(DetailView):
def get_queryset(self):
self.slug = self.kwargs.get("slug")
if self.slug:
queryset = Cliente.objects.filter(slug__icontains=self.slug)
else:
queryset = Cliente.objects.all()
print('ClienteDetailView')
return queryset #, queryset2 #, queryset3, queryset4
def get_context_data(self, **kwargs):
queryset = Cliente.objects.filter(slug__icontains=self.slug)
cliente = Cliente.objects.get(slug__icontains=self.slug).id_cliente
queryset2 = Exame.objects.filter(cliente_fk=cliente)
queryset3 = Dependencia.objects.filter(id_cliente2=cliente)
quantidade = Dependencia.objects.filter(id_cliente2=cliente).count()
context = {
"object": queryset,
"object2": queryset2,
"object3": queryset3,
}
if quantidade > 0:
for i in queryset3:
#cliente2 = Dependencia.objects.get(id_cliente2=i.id_cliente2).id_cliente1
query = Exame.objects.filter(cliente_fk=i.id_cliente1)
query2 = Cliente.objects.get(nome=i.id_cliente1)
a = str(i.id_cliente1)
a = a.replace(" ", "_")
context[a] = query
else:
queryset4 = Exame.objects.all()
tamanho = len(context)
context['tamanho'] = tamanho
print(context)
return context
在 .py 代码中,我打印了上下文:
{'object': <QuerySet [<Cliente: Gustavo Cousseau>]>, 'object2': <QuerySet [<Exame: Olhos>]>, 'object3': <QuerySet [<Dependencia: Dependencia object (1)>, < Dependencia: Dependencia 对象 (2)>]>, 'Luiz_Paese': <QuerySet [<Exame: Prostata>, <Exame: Urina>]>, 'Peterson_Belo': <QuerySet [<Exame: Perna s>]>, 'tamanho ':5}
解决方案
如果您想将一些变量传递到您的 Javascript 代码中,请使用json_script
模板过滤器,完全按照Django 文档中的描述。不正确地执行此类操作可能会导致非常严重的安全风险。