跳转到主要内容

Django应用,用于查询瑞士邮政API以获取邮编和地方名称。

项目描述

city-ch-autocomplete是一个Django辅助应用,用于在地址表单中添加自动完成小部件,通过post.ch API搜索邮政编码和地方名称。

它依赖于Bootstrap 5来生成自动完成小部件。

快速入门

  1. 将“city_ch_autocomplete”添加到您的INSTALLED_APPS设置中,如下所示

    INSTALLED_APPS = [
        ...,
        "city_ch_autocomplete",
    ]
  2. 将city_ch_autocomplete urls包含到您的urlpatterns中

    urlpatterns = [
        ...,
        path("", include("city_ch_autocomplete.urls")),
        ...,
    ]
  1. 从瑞士邮政(从https://developer.apis.post.ch/ui/home开始)获取API访问权限。请注意,此过程可能需要一些时间。然后添加POST_API_USER和POST_API_PASSWORD设置到您的项目中。

    可选地,您可以从CSV获取数据并将其放入数据库表中。阅读下面的详细信息。

  2. 在您的项目目标表单中,将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 (11.0 kB 查看散列值)

上传时间

构建分布

city_ch_autocomplete-0.4.0-py3-none-any.whl (12.1 kB 查看散列值)

上传时间 Python 3

由支持