使用点运算符访问字典时,条件语句在Django模板中不起作用
如果文件daily-yyyy-mm.csv退出,但它始终显示不可用,则我尝试提供下载选项 即使文件存在 我在views.py中创建了一个字典(文件列表),如果文件存在,它会为该索引保存True。我已经检查了在os.path.join生成的路径,它是正确的,而且字典对存在的文件也是正确的。我认为问题在于在访问模板中的字典时使用了两个嵌套的点运算符 模板使用点运算符访问字典时,条件语句在Django模板中不起作用,django,python-2.7,django-templates,django-orm,Django,Python 2.7,Django Templates,Django Orm,如果文件daily-yyyy-mm.csv退出,但它始终显示不可用,则我尝试提供下载选项 即使文件存在 我在views.py中创建了一个字典(文件列表),如果文件存在,它会为该索引保存True。我已经检查了在os.path.join生成的路径,它是正确的,而且字典对存在的文件也是正确的。我认为问题在于在访问模板中的字典时使用了两个嵌套的点运算符 模板 {% for upload in upload_list %} <tr> {%
{% for upload in upload_list %}
<tr>
{%if file_list.upload.upload_report_date %}
<td><a href="{%static 'media/daily-{{ upload.upload_report_date|date:"Y-m" }}.csv" download >Download</a></td>
{% else %}
<td>Not Available</td>
{% endif %}
</tr>
{% endfor %}
我使用的是python 2.7和django 1.6.7。您当前试图从模板中访问字典
文件列表
:文件列表。上传。上传报告日期
有了它,您将始终登录到else
,因为您无法通过这种方式访问它。
您的代码尝试获取文件列表
的属性上传
,该属性将始终返回无
,因为它不存在
您可以做的是创建可用文件的列表(因为您已经调用了变量\u list
):
文件列表=[]
对于上传列表中的上传:
尝试:
如果os.path.存在(…):
文件\u列表.append(上传.上传\u报告\u日期)
除:
通过
然后在模板中:
{% if upload.upload_report_date in file_list %}
...
当您在视图中简单地渲染或打印它时,什么是
文件\u列表。上载。上载报告\u日期
?如果我简单地渲染它,它是空的。
{% if upload.upload_report_date in file_list %}
...