django - Django - 仅出于过滤目的修改字段值
问题描述
我想修改some_date_field
值只是为了过滤。喜欢使用models.Lookup
ormodels.Transform
但我不想制作原始的 sql 表达式。
例如,使用原始的 ms sql 表达式,我可以编写:
WHERE CONVERT(date, FORMAT(some_date_field, '2021MMdd')) >= @some_var
但我怎么能用 Django 做到这一点?
class SomeModel(models.Model):
some_date_field = models.DateField()
def replace_year(value):
return value.replace(year=2021)
SomeModel.objects.filter(
# replace_year(some_date_field)__gte=some_var
)
可能吗?
解决方案
您可以使用 SomeModel.objects.filter({whatever you want to filter}).update(some_date_field={date_value})
如果您有任何问题,请参阅: https ://docs.djangoproject.com/en/3.2/ref/models/querysets/#django.db.models.query.QuerySet.update
推荐阅读
- postgresql - 是否有一个 ts(文本搜索)函数会返回找到的字符串而不是布尔值?
- typescript - 打字稿 | 使用参数将类型参数传递给另一个类型
- php - 用于在自定义文件夹中上传 pdf 文件的 WordPress 插件
- android - Android 布局在预览时显示 GreyBoxes
- python - 将值写入 CSV 文件后无法获得逐行输出,因为其中一个值包含逗号
- android - 从 ArrayList 中删除一个值
不运行循环 - python - 如何使用数据库中的新数据更新 plotly dash 应用程序
- python - 绘制 PCA 的某些维度时出现 3D 绘图和图例问题
- c# - 如何获取类列表中的属性列表?
- sql - sql查询结果中的英镑符号(£)