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

2024-10-02 00:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在尝试创建一个员工考勤计划,我想让员工可以看到他们工作的总小时数

这是导致问题的代码:

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!'

Tags: nameformgetdatetimedateobjectsresponse错误
1条回答
网友
1楼 · 发布于 2024-10-02 00:28:53

您必须使用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
...

相关问题 更多 >

    热门问题