如何使用表达式左侧的函数进行过滤?
How to filter using a function in the left side of an expression?
可以使用左侧的 Replace
函数使用 Django ORM 执行过滤器吗?它将实现类似这样的查询:
select * from my_table where replace(field, '-', '') = 'value'
如果我尝试使用过滤器函数内部右侧的函数,我会收到此错误:keyword can't be an expression
使用 Replace 数据库函数创建一个带注释的字段,等于您可以过滤的替换字段
from django.db.models import Value
from django.db.models.functions import Replace
MyModel.objects.annotate(
field_replaced=Replace('field', Value('-'), Value(''))
).filter(
field_replaced='value'
)
可以使用左侧的 Replace
函数使用 Django ORM 执行过滤器吗?它将实现类似这样的查询:
select * from my_table where replace(field, '-', '') = 'value'
如果我尝试使用过滤器函数内部右侧的函数,我会收到此错误:keyword can't be an expression
使用 Replace 数据库函数创建一个带注释的字段,等于您可以过滤的替换字段
from django.db.models import Value
from django.db.models.functions import Replace
MyModel.objects.annotate(
field_replaced=Replace('field', Value('-'), Value(''))
).filter(
field_replaced='value'
)