存在Django模型,表示在运行代码

时间:2016-07-06 08:35:37

标签: python django

我有以下型号:

class Basestationreport(models.Model):
    ...
    gpstimeanddate = models.DateTimeField(db_column='GPSTimeAndDate')  # Field name made lowercase.
    ...

代码:

from .models import Basestationreport

@login_required(login_url="login/")
def getbasestationsbetween(request):
    fromdate = request.POST.get('from')
    todate = request.POST.get('to')
    result = Basestationreport.objects.filter(gpstimeanddate > datetime.date(2005, 1, 1))
    return HttpResponse(json.dumps(request.POST), content_type="application/json")

我得到的错误是:

  

NameError:name' gpstimeanddate'没有定义。

我使用此表中其他字段的其他函数运行正常。我错过了什么吗?

4 个答案:

答案 0 :(得分:1)

错误是因为它正在寻找一个名为gpstimeanddate的局部变量,您显然还没有定义,也没有尝试使用。

由于您尝试将其用作字段来过滤结果,因此您需要将其用作fiter中的关键字,以及使用__gt

.filter(gpstimeanddate__gt=datetime.date(2005, 1, 1))

答案 1 :(得分:1)

应该使用

_gt代替>。您可以从此documentation了解更多信息。

result = Basestationreport.objects.filter(gpstimeanddate__gt = datetime.date(2005, 1, 1))

答案 2 :(得分:1)

这一行:

result = Basestationreport.objects.filter(gpstimeanddate > datetime.date(2005, 1, 1))

应该是

result = Basestationreport.objects.filter(gpstimeanddate__gt=datetime.date(2005, 1, 1))

像过滤器这样的Django查询只接受关键字参数,而不是布尔表达式。查看this link,通常是文档。

答案 3 :(得分:0)

使用__gt代替>

result = Basestationreport.objects.filter(gpstimeanddate__gt = datetime.date(2005, 1, 1))

以上给出的所有文档链接均已损坏, 这是更新的链接:__gt