Django:忽略查询集中特定查询的空间

时间:2019-01-03 15:26:22

标签: python django

输入:OFG 5T4 WR4 2-3 没有给出ofg5t4wr42-3的任何结果。

但是,这就是updateMethod = (id, value) => { const options = { method: 'PUT', uri: `${process.env.API_ENDPOINT}/id/${id}/value/${value}`, rejectUnauthorized: false, headers: { 'x-api-key': process.env.API_KEY, 'app-user-id': process.env.API_USER, }, json: true, }; return request(options) .then(response => response) .catch((e) => { console.log(e); }); }; 保存在数据库中的方式,同时我在输入中显示的票证上也显示了它,以便于阅读。我可以将ticket_reference替换为其他“过滤器”,以“忽略” ticket_reference查询的空间。

ticket_reference__icontains

1 个答案:

答案 0 :(得分:1)

您可以这样删除空格:

def queryset(self, queryset):
    cleaned_data = self.cleaned_data

    # Search
    search = cleaned_data.get('search')
    if search:
        queryset = queryset.filter(
            Q(company_name__icontains=search) |
            Q(first_name__icontains=search) |
            Q(last_name__icontains=search) |
            Q(email__icontains=search) |
            Q(ticket_reference__icontains=search.replace(" ", "")
        )

请注意,这仍然相当有限,例如搜索“ John Doe”将不会找到具有first_name =“ John”,last_name =“ Doe”的条目(因为first_name和last_name都不包含“ John Doe”)。

如果您使用的是PostgreSQL,我建议您查阅Full text search上的Django文档。