这是我的第一个问题(很抱歉有任何英语错误),我提前感谢您的帮助!我正在使用 Django 应用程序 (MVT)。我有一个返回字典的视图,我想访问模板中字典的各个元素。但是,在模板中,我可以毫无问题地渲染完整的字典,但无法渲染单个元素。我将向您展示返回字典 registros_por_dia 的视图。
class GrillaView(View):
template_name = 'grilla.html'
def get(self, request):
return render(request, self.template_name)
def contar_registros(self, fecha):
...
def post(self, request, fecha=None):
if fecha:
...
else:
# Esta parte se ejecutará cuando se envíe el formulario del mes y año
mes = int(request.POST.get('mes'))
ano = int(request.POST.get('ano'))
dias_en_mes = [dia for dia in range(1, monthrange(ano, mes)[1] + 1)]
registros_por_dia = {}
for dia in dias_en_mes:
fecha = datetime(ano, mes, dia).strftime('%Y-%m-%d')
contador = self.contar_registros(fecha)
registros_por_dia[dia] = contador
return render(request, self.template_name, {'dias_en_mes': dias_en_mes, 'registros_por_dia': registros_por_dia})
现在我将向您展示模板的相关部分。
...
{% if dias_en_mes %}
{% with fecha_format='%Y-%m-%d' %}
<div style="display: flex; flex-wrap: wrap;">
{% for dia in dias_en_mes %}
{% with fecha=dia|date:fecha_format %}
<div style="width: 50px; height: 50px; border: 1px solid black; margin: 5px;">
<span>{{ dia }}</span>
<br>
<span>{{registros_por_dia.dia}}</span>
</div>
{% endwith %}
{% endfor %}
</div>
{% endwith %}
{% endif %}
{% endblock %}
行 {{registros_por_dia.dia}} 不呈现任何值。但是,如果我将其更改为 {{registros_por_dia}},它会渲染整个字典。 我尝试过各种变体但没有成功。
<span>{{registros_por_dia|get:dia}}</span>
<span>{{registros_por_dia.get(dia, 'Valor predeterminado')}}</span>
{% with registro=registros_por_dia.dia %}<span>{{ registro }}</span> {% endwith %}
<span>{{registros_por_dia|getattr:dia}}</span>
<span>{{registros_por_dia[dia]}}</span>
<span>{{registros_por_dia|dictlookup:dia}}</span>
它们都不起作用,有人知道我能做什么吗? 非常感谢!
我尝试过各种变体但没有成功。
<span>{{registros_por_dia|get:dia}}</span>
<span>{{registros_por_dia.get(dia, 'Valor predeterminado')}}</span>
{% with registro=registros_por_dia.dia %}<span>{{ registro }}</span> {% endwith %}
<span>{{registros_por_dia|getattr:dia}}</span>
<span>{{registros_por_dia[dia]}}</span>
<span>{{registros_por_dia|dictlookup:dia}}</span>
它们都不起作用,有人知道我能做什么吗? 非常感谢!
您可能正在寻找字典的
items
方法:
{% for dia, contador in registros_por_dia.items %}
{{dia}}: {{contador}}<br />
{% endfor %}
当然,如果
contador
是像列表这样的数据类型,请在外循环中进行如下处理:
{% for dia, contador in registros_por_dia.items %}
{{dia}}: {% for c in contador %} {{c}} {% endfor %}<br />
{% endfor %}