如何使django queryset忽略空格

时间:2015-11-06 04:45:58

标签: django

有一些存储在db中。列数据可以包含一个以下的空白区域。

$timeout

我想选择所有' 3d打印机'。

告诉我这个方法。

2 个答案:

答案 0 :(得分:3)

你可以这样做:

Printer.objects.extra(where=["LOWER(REPLACE(name,' ','')) = '3dprinter'"])

obove查询将首先删除名称中的任何空格,然后将其设为小写,然后将其与 3dprinter

进行比较

由于名称中的所有空格都被移除,包括 3d 之后的空格,我们需要将名称与 3dprinter 进行比较

答案 1 :(得分:1)

我猜django不支持字符串的SQL REPLACE选项。但是你可以使用原始的sql。以下是关于相同的Django文档:https://docs.djangoproject.com/en/1.8/topics/db/sql/

这是用于忽略空格Query that ignore the spaces

的原始SQL查询

在我看来,你应该在表slug-name中添加另一列,它将存储名称而不包含空格。通过这种方式,您可以轻松地在桌面上使用Django ORM。