【问题标题】:Django - Search fieldDjango - 搜索字段
【发布时间】:2020-10-11 05:43:53
【问题描述】:

我正在创建一个房地产网络应用程序。我想知道设置我的位置搜索字段的最佳实施方式。

我已启动并运行 Places API(自动完成位置建议),但我现在有点迷茫,不知道如何根据用户的首选位置检索信息并返回过滤器属性。

  1. 我应该使用自定义 SQL 查询吗? (我正在使用 posgres) 2) 是否有任何既定的方法可以使用 google 地方/地图 API 或任何其他方法来做到这一点?

我尝试使用 Django 的内置 icontains 方法来实现它,但我的搜索字段返回如下内容:{London, UK, } 这意味着许多用逗号分隔的单词和 icontains 不起作用。

很高兴提出任何建议。

【问题讨论】:

    标签: javascript sql django google-places-api


    【解决方案1】:

    我猜,您需要将查询拆分为国家、州、地区、街道...

    query = "London, UK"
    country = query.split(",")[-1]
    state = query.split(",")[-2]
    

    之后,您可以将国家/地区传递给 Django 模型过滤器

    result = some_model.objects.all().filter(country__icontains=country)
    

    【讨论】:

    • 不错的方法,但我需要匹配尽可能多的细节。例如,牛津市在英国和美国都存在。理想的做法是采用从地点 API 生成的值 {Chester, CH1 3DA, United Kingdom} 并将它们与列出的属性相匹配,这些属性具有存储所有详细信息的位置字段。
    • 然后,您可以继续使用“过滤器”来处理您从地点 API 接收到的所有值(从国家到街道)。例如 some_model.objects.all().filter(address__icontains=country).filter(address__icontains=state).filter(address__icontains=street)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多