分享
三行代码  ›  专栏  ›  技术社区  ›  Din

如何从django数据库中获取多行?

  •  1
  • Din  · 技术社区  · 1 周前

    你好,我正在尝试创建一个员工出勤计划,我想使它,使员工可以看到他们的总工作时间。

    这是产生问题的代码:

    elif 'checkName' in response.POST:
        if form.is_valid():
            n = form.cleaned_data["name"]
            t = Name.objects.filter(name=n)
            totalHours = datetime.combine(t.date, t.timeOut) - datetime.combine(t.date, t.timeIn)
            messages.success(response, totalHours)
            return redirect('/')
    

    'QuerySet' object has no attribute 'date' 
    

    如果我使用

    t = Name.objects.get(name=n)
    

    'get() returned more than one Name -- it returned 2!'
    
    1 回复  |  直到 1 周前
        1
  •  0
  •   Selcuk    1 周前

    你必须使用 filter get 仅用于获取一条记录。试试这个:

    ...
    names = Name.objects.filter(name=n)
    totalHours = 0
    for name in names:
        totalHours += (
            datetime.combine(name.date, name.timeOut)
            - datetime.combine(name.date, name.timeIn)).seconds / 3600
    ...