【问题标题】:display list item in HTML template在 HTML 模板中显示列表项
【发布时间】:2021-07-27 10:14:57
【问题描述】:

我有 2 个列表,我从我的 python 代码导入到名为 eligable 和 overTimeHours 的 html 模板。我尝试像这样显示它们:

<ul>
{% for item in eligable %}
<div class="pad3">
    <li>{{item}} - {{item.overTimeHours}}</li>
</div>
{% endfor %}
</ul>

但只显示 {{item}} 而 {{item.overTimeHours}} 没有显示。

这是我的python代码:

def specificDate(response):
    empName = employeeName.objects.all
    eligable = []
    overTimeHours = []
    check = False
    if 'checkEmployee' in response.POST:
        n = response.POST.get("nameEmployee")
        specDate = response.POST.get("date")
        correctDate = None
        try:
            newDate = datetime.strptime(specDate,  '%Y-%m-%d')
            correctDate = True
        except ValueError:
            correctDate = False
        print("This One: ",correctDate)
        if correctDate == True:
            if employeeName.objects.filter(employee=n).exists() and Name.objects.filter(date=specDate).exists():
                check = True
                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)
                    totalTime = (datetime.combine(item.date, item.timeOut)- datetime.combine(item.date, item.timeIn)).seconds/3600
                    hours = int(totalTime)
                    minutes = (totalTime*60) % 60
                    seconds = (totalTime*3600) % 60
                    time = "%d:%02d:%02d" % (hours, minutes, seconds) 
                    overTimeHours.append(time)
                checkIn = t.timeIn.strftime("%H:%M:%S")
                checkOut = t.timeOut.strftime("%H:%M:%S")
                messages.info(response, checkIn + ' - ' + checkOut)
                return render(response, "main/specificDate.html",  context={"empName":empName, "eligable":eligable, "check":check, "overTimeHours":overTimeHours})
            else:
                messages.info(response, 'Result does not exist')
        else:
            messages.info(response, 'Please enter correct input')
    else: 
        pass
    return render(response, "main/specificDate.html",  {"empName":empName})

【问题讨论】:

    标签: python html django templates django-templates


    【解决方案1】:

    在上面的代码中,eligableoverTimeHours 是两个不同的列表。您显示的变量是“item”,它是 eligable 的元素,而不是 overTimeHours 的元素,反之亦然。

    如果您想显示两个列表中的项目,将有两个“for 循环”,一个用于 eligable,另一个用于 overTimeHours

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多