You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 4.1.2数据库字段过滤报NameError问题排查

问题原因与解决方法

你遇到的NameError是因为Django ORM查询语法使用错误:直接在filter()里用es_date>timezone.now()这种Python原生比较方式时,Python会把es_date当成当前环境里的普通变量,而非Activities模型的字段——你显然没定义过这个变量,所以触发了未定义错误。

Django ORM有专属的字段查询规则,要实现“大于”的过滤逻辑,需要用双下划线拼接的查询后缀__gt,正确写法应为:

Activities.objects.filter(es_date__gt=timezone.now())

至于.objects.all()和.objects.get(id=1)能正常运行,是因为这两个方法不需要在参数里引用模型字段,不会触发变量解析的问题。

内容的提问来源于stack exchange,提问作者Pali775

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 00:30:55