mkl*_*ber 1 django django-models django-queryset
所有,
我基本上都在尝试进行关键字通知,因此每当创建具有名称的对象时,任何想要收到此名称中的任何单词的通知的人都会被通知。
例如
记录: 关键词:你好 关键词:世界 新名称:“你好世界” 返回两条记录
我已经在 sqlite 中创建了一个正确适用于此的查询,并且我知道如何跨数据库翻译它。
SELECT * FROM table t
WHERE "a constant string" LIKE "%" || t.field || "%";
Run Code Online (Sandbox Code Playgroud)
我已经确定在 django 中,可以使用F() 对象将一个字段与另一个字段进行比较,如下所示:
Entry.objects.filter(n_comments__gt=F('n_pingbacks'))
Run Code Online (Sandbox Code Playgroud)
现在有人知道如何用常量字符串替换第一个字段吗?像这样:
Entry.objects.filter("constant string"__icontains=F('n_pingbacks'))
Run Code Online (Sandbox Code Playgroud)
还是我要倒退?
小智 5
它看起来不是特别漂亮,但可以使用标准过滤器完成所有操作。
from django.db.models import ExpressionWrapper, CharField, Value
Entry.objects.annotate(
my_const=ExpressionWrapper(Value("a constant string"),
output_field=CharField())
).filter(my_const__contains=F('n_pingbacks'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2004 次 |
| 最近记录: |