python - 将列表字典传递给模板不起作用 django
问题描述
我正在尝试传递一个名为 eligable 的列表,以便我可以在我的网站上显示,但是当我运行我的网站时,它不会显示该列表。我不明白出了什么问题。
代码:
def specificDate(response):
empName = employeeName.objects.all()
eligable = []
if 'checkEmployee' in response.POST:
n = response.POST.get("nameEmployee")
specDate = response.POST.get("date")
if employeeName.objects.filter(employee=n).exists() and Name.objects.filter(date=specDate).exists():
emp = employeeName.objects.get(employee=n)
t = Name.objects.get(name=emp, date=specDate)
overT = Name.objects.filter(name=emp, overtime=True)
for item in overT:
eligable.append(item.date)
checkIn = t.timeIn.strftime("%H:%M:%S")
checkOut = t.timeOut.strftime("%H:%M:%S")
datee = datetime.strptime(specDate,'%Y-%m-%d')
print("Here:: ",t.date)
print("Month:: ",datee.month)
messages.info(response, checkIn + ' - ' + checkOut)
return redirect('/specificDate')
else:
messages.info(response, 'Name does not exist')
else:
pass
return render(response, "main/specificDate.html", context={"empName":empName, "eligable":eligable})
这是打印我的列表的 html:
{% for item in eligable %}
<div class="pad3">
{{item}}
</div>
{% endfor %}
解决方案
您的代码中有两个返回语句:
return redirect('/specificDate')
和
return render(response, "main/specificDate.html", context={"empName":empName, "eligable":eligable})
第一个只是重定向而不填充上下文。
第二个确实填充了上下文,但只有在eligable
为空时才能到达。
我认为将第一个返回更改为第二个应该可以解决它。
编辑:你在这里缺少 {% endfor %} 。但是,如果您在完整代码中遗漏了它,它应该会给您一个错误。
推荐阅读
- python - 修改文本文件中任意行的特定索引
- excel - VBA代码在运行时锁定Excel,但在单步执行代码时运行正常
- reactjs - 在 useState 中保存反应元素以获得良好的性能是一种很好的模式吗?
- sql - 有没有办法通过 SQLAlchemy 和 MariaDB 获得类似 NULLS LAST 的功能?
- python - 如何拆分数据框的行,将“\ n”视为分隔符
- javascript - 如果 HTML 输入元素的值没有被 RxJS 更改,如何停止管道?
- swift - Swift 5 中的并发竞争条件函数
- java - 如何修复通用循环数组队列中的 NullPointerException
- python-2.7 - 是否可以避免此 python 字符串的旧式 '%' 字符串格式
- html - IE 和 Chrome 中元素的边距不同