在Django中按整数字段的内容搜索

时间:2018-06-22 21:39:36

标签: django django-queryset

我有一个表,其中包含以整数存储的电话前缀列表。 但是我希望能够以``包含''方式进行搜索,例如当搜索“ 32”时,我想查看所有在前缀中包含实际文本“ 32”的记录。

当然,如果使用普通的SQL没问题,但是我找不到有关如何在Django中完成此操作的任何指南。

基本上重要的部分是现在:

if search_value:
    destinations = destinations.filter(description__icontains=search_value)

它必须是这样的:

if search_value:
    destinations = destinations.filter(description__icontains=search_value, prefix__icontains=search_value)

但是,由于“前缀”是整数列,因此不会产生任何结果。

什么是最好的方法?我当时在考虑MySQL中的生成字段,但是我又不知道如何在Django模型中使该字段可用。

1 个答案:

答案 0 :(得分:0)

我认为您需要做的是将前缀字段作为CHAR进行CAST,然后根据该字段的CAST版本进行过滤。

看看这个stackoverflow问题:

How do i cast char to integer while querying in django ORM?