我有一个Django表单,其中一个字段是街道地址的TextInput
。
我想把数据规范化。例如:
>> normalize('420 East 24th St.')
'420 E. 24th Street'
>> normalize('221 Amsterdam Av')
'221 Amsterdam Ave.'
>> normalize('221 Amsterdam Avenue')
'221 Amsterdam Ave.'
或者类似的事情。我已经在使用geopy进行地理编码。也许这会有帮助?
还有:我应该在哪里正常化?在数据库模型中还是在表单域的clean函数中?
最可靠的方法是利用真实地址验证服务。它不仅将根据USPS标准(参见Publication 28)标准化(规范化)地址组件,而且还将确保地址是真实的。
完全公开:我为SmartyStreets工作,它提供了这样一个service。下面是一些非常简单的python示例代码,演示如何通过HTTP GET请求使用我们的服务:
https://github.com/smartystreets/LiveAddressSamples/blob/master/python/street-address.py
我最近创建了一个street-addresspython模块,它的StreetAddressFormatter可用于规范化您的地址。
这就是我解决这个问题的方式(不是双关语):
然后在模板中使用
Place.display_address
。这允许我将原始用户提交的数据保存在数据库中而无需修改,并且在需要标准化显示版本时只需使用display_address
。开放征求意见/建议。
相关问题 更多 >
编程相关推荐