Django应用,用于查询瑞士邮政API以获取邮编和地方名称。
项目描述
city-ch-autocomplete是一个Django辅助应用,用于在地址表单中添加自动完成小部件,通过post.ch API搜索邮政编码和地方名称。
它依赖于Bootstrap 5来生成自动完成小部件。
快速入门
将“city_ch_autocomplete”添加到您的INSTALLED_APPS设置中,如下所示
INSTALLED_APPS = [ ..., "city_ch_autocomplete", ]
将city_ch_autocomplete urls包含到您的urlpatterns中
urlpatterns = [ ..., path("", include("city_ch_autocomplete.urls")), ..., ]
从瑞士邮政(从https://developer.apis.post.ch/ui/home开始)获取API访问权限。请注意,此过程可能需要一些时间。然后添加POST_API_USER和POST_API_PASSWORD设置到您的项目中。
可选地,您可以从CSV获取数据并将其放入数据库表中。阅读下面的详细信息。
在您的项目目标表单中,将CityChMixin添加到您的表单继承中,并将CityChField作为表单字段
from city_ch_autocomplete.forms import CityChField, CityChMixin class YourForm(CityChMixin, forms.ModelForm): class Meta: fields = [..., '<my_postcode_model_field>', '<my_city_model_field>', ...] city_auto = CityChField(...) postal_code_model_field = '<my_postcode_model_field>' city_model_field = '<my_city_model_field>'
不要忘记在您使用表单的模板中包含{{ form.media }}。
从数据库中搜索
如果由于某种原因,您更喜欢从数据库表而不是从瑞士邮政API中搜索邮编/名称,您可以使用外部数据填充PLZdb模型。类方法PLZdb.import_from_csv(csv_path)允许导入此类数据。
良好的CSV数据源是https://www.swisstopo.admin.ch/fr/repertoire-officiel-des-localites(选择以2056.csv结尾的csv)。
然后将POST_API_USER设置更改为< cite>无,视图将从数据库中进行搜索。
地理位置城市过滤器
如果您的数据库启用了空间功能,< cite>PLZdb.objects 管理器允许在另一个城市的周围距离内搜索城市
PLZdb.objects.filter_cities_around(<plz value>, <km>)
项目详情
city_ch_autocomplete-0.4.0.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | ec4b1930ca3e0b8a8536d624bb3edc942bf3416a991b619745529d278dd29593 |
|
MD5 | 420dcb677b0f08c88bcbe09936a99ceb |
|
BLAKE2b-256 | 62061a9f15b11c390e351818bea312eab0624da761ee2e8f283b5995d8d665de |
city_ch_autocomplete-0.4.0-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | bdf90680cde36c6aba45501001b4bcf020312b833460771522c2847a7e406876 |
|
MD5 | 4902d1d78e48cc3ebe700463ec788feb |
|
BLAKE2b-256 | df087862476827804da33ac24d77efe1d58c10fda6c58691017d30579edf8943 |