问题描述
在使用 Django 开发的时候可能预设的字段是 DateTimeField
类型的,
但是由于一些业务原因,
现将查询的字段值为 xxxx-xx-xx
的日期类型字符串,
而我想直接通过日期的字段数据直接查询 DateTimeField
,
最终将结果展示。
我的业务讲解
我开发的 M&OAS 中日报系统字段是 DateTimeField
类型,
而查询的字段值是日期类型的,
结果是以日期为条件,
并约束在相同的项目内的数据,
展示、修改或新增。
解决
解决的流程罗列:
- 判断参数有效性
- 参数拆分相关位置数据
- 组合查询 Model
import datetime
from .model import Model
try:
date = datetime.datetime.strptime('2020-10-23', '%Y-%m-%d')
except ValueError:
# 参数异常
...
Model.objects.filter(
date__year=date.year,
date__month=date.month,
date__day=date.day,
)
你需要将 Model
换成你的 ORMModel,
并且将 2020-10-23
替换成你传递日期字符串的参数名,
补充 #参数异常
处的代码块,
ORM 查询条件中 date__xxx
是你 ORM 的 DateTimeField
字段名,
如你的字段名是 abc
,
那你需要将查询条件参数修改成 abc__year
、abc__month
、abc__day
即可。