获得django查询的最佳匹配

时间:2013-03-21 08:08:36

标签: python django

我有一件事需要建议。请帮帮我。

我的情景是: 我有一个类似订单的模型 在这张表中我有像

这样的前缀
1  | US
12 | Canada
13 | UK
134 | Australia 

等等。 那么,我的字符串就像12345678,我需要得到这个字符串的最佳匹配。

如果用户输入12345678最佳匹配是12 |加拿大,如果用户输入135678975最佳匹配是13 |英国,如果用户输入1345676788最佳匹配是134。

如何在django查询中执行此操作?

谢谢,

2 个答案:

答案 0 :(得分:1)

它将需要多个请求来检查给定订单代码中的每个字符...

def get_matching_country(order_num):
    i = 1
    matching_req = Country.objects.none()
    while true:
        req = Country.objects.filter(country_code=order_num[:i])
        if res.exists():
            matching_req = req
            i += 1
        else:
            break

    return matching_req

答案 1 :(得分:-1)

def match_country(request, string):
    qs = Country.objects.filter(country_code__startswith=string) #or int(string) but you might want to write an exception if person provides a letters in that numbers.

    return ...

您是否已将国家/地区代码保存为字符串或整数?