如何在 Django ORM 中重写查询?

Posted

技术标签:

【中文标题】如何在 Django ORM 中重写查询?【英文标题】:How rewrite query in Django ORM? 【发布时间】:2017-08-23 17:30:55 【问题描述】:

请帮忙改写为 Django ORM

SELECT * FROM T
WHERE REPLACE(T.field, '-', ' ') = REPLACE(VALUE,'-', ' ')

【问题讨论】:

【参考方案1】:

您可以关注“https://docs.djangoproject.com/en/1.11/topics/db/sql/”。您可以对 Django ORM 使用原始查询。

【讨论】:

对不起,但原始查询不需要。只需要Django ORM(这是测试任务,但我不执行他,我不知道怎么做) obs = Goods.objects\ # 我尝试这样做: .annotate(data2=Func( # F('data'), F('data'), Value("'-'" ), Value("' '"), function='replace', ))\ .filter( Q(data__contains="Andrew") | Q( data2=Func( F('data'), Value("'-7 '"), Value("'7'"), function='replace', ), ))

以上是关于如何在 Django ORM 中重写查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django ORM 的 From 子句中编写子查询

在 django ORM 中查询时如何将 char 转换为整数?

如何查看 Django ORM 运行的查询?

如何使用Django ORM查询计算数量乘以价格

如何在 Django ORM 中更改 PostgreSQL 的默认空排序行为

如何在不使用字段名的情况下运行 django orm 查询?