我有以下型号:
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'没有定义。
我使用此表中其他字段的其他函数运行正常。我错过了什么吗?
答案 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