如何从Django数据库获取行?

2024-04-23 22:43:32 发布

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

您好,我正在尝试创建一个打卡打卡网站,我不知道如何获得一行过滤的人的名字添加在打卡时间

这是代码。第一个if语句工作正常,但else语句是我遇到问题的地方:

        if response.POST.get("clockIn"):
            if form.is_valid():
                n = form.cleaned_data["name"]
                t = Name(name = n, timeIn=datetime.now(), timeOut=NULL)
                t.save()
        else:
            if form.is_valid():
                n = form.cleaned_data["name"]
                t = Name.objects
                t = t.filter(name = n)
                s = t(timeOut = datetime.now()) 
                s.save()

这是我的models.py:

class Name(models.Model):
    name = models.CharField(max_length=200)
    timeIn = models.DateTimeField()
    timeOut = models.DateTimeField(default=datetime.now())

    def __str__(self):
        return self.name

Tags: nameformdatadatetimeifismodelstimeout
2条回答

您没有提供足够的信息来正确解决此问题。你的models.py文件在哪里?您应该在问题中添加models.py文件

顺便说一下,在Django中,使用filter获取一行如下所示:

name=your_person_name
Entry.objects.filter(person_name=name)
if form.is_valid():
    n = form.cleaned_data["name"]
    # If there are unique entries for this name then you should use get method instead of filter
    try:
        t = Name.objects.get(name=n)
        t.timeOut = datetime.now()
        t.save()
    except Exception as _: # or maybe NameDoesNotExist exception
        # Handle case
        pass

相关问题 更多 >