Skip to main content
 首页 » 编程设计

python之Django,查询问题

2025年05月04日30leader

我有一个像这样充满地理数据的 mysql 表:

locations 
  - city 
  - state 
  - zipcode 
  - lat 
  - lon  

由于主要城镇有多个邮政编码,因此每个城镇都有多个记录。

例子:

"city": "BOULDER", "state": "CO", "zipcode": "80310" 
"city": "BOULDER", "state": "CO", "zipcode": "80322" 
"city": "BOULDER", "state": "CO", "zipcode": "80308" 
... 
"city": "BOULDER CITY", "state": "NV", "zipcode": "89005" 
"city": "BOULDER CITY", "state": "NV", "zipcode": "89006" 

我正在为我的网站创建一个自动完成插件,所以我需要查询 city='BOULDER', state='CO' 并让它只返回该城市的 1 个结果,而不是像使用那样返回 3 个结果以上数据。

我尝试将 group by 与 .values('city') 一起使用,但后来我只取回了城市名称,而不是我所有字段的字典之类的对象(正如我需要的那样)。

你们中的专家查询人员知道我如何在 Django 1.2 中完成这个吗?

请您参考如下方法:

最好的解决办法是改变你的表格,但这会给你一本包含你需要的所有信息的字典:

def location_query(my_city, my_state): 
    my_dict = {'city':my_city,'state':my_state} 
    zips = Location.objects.filter(city = my_city, state = my_state).values_list('zip', flat = True) 
    my_dict['zips'] = zips 
    return my_dict 
 
boulder_dict = location_query('Boulder', 'CO')