【问题标题】:Passing list dict to template not working django将列表字典传递给模板不起作用 django
【发布时间】:2021-07-27 09:04:03
【问题描述】:

我正在尝试传递一个名为 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 %}

【问题讨论】:

  • 你在div下面添加{% endfor %}了吗
  • @Poornaka 是的,我在复制代码时错过了它
  • 问题是重定向的时候POST请求数据不能走
  • 尝试返回正常渲染
  • 没关系,我尝试了 emril 的答案,现在可以了。感谢您的帮助

标签: python html django list templates


【解决方案1】:

您的代码中有两个返回语句:

    return redirect('/specificDate')

    return render(response, "main/specificDate.html",  context={"empName":empName, "eligable":eligable})

第一个只是重定向而不填充上下文。

第二个确实填充了上下文,但只有在 eligable 为空时才会到达。

我认为将第一个返回更改为第二个应该可以解决它。

编辑:你在这里缺少 {% endfor %} 。但是,如果您在完整代码中遗漏了它,它应该会给您一个错误。

【讨论】:

  • 所以我应该把return redirect(....)改成return render(....)?
  • 是的。重定向时,您不会将任何信息传递到下一页。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-27
  • 2011-08-17
  • 2014-08-14
  • 2012-11-01
  • 1970-01-01
  • 2012-03-02
相关资源
最近更新 更多