A Django app to query the Swiss Post API for postcodes and localities.
Project description
city-ch-autocomplete is a Django helper app to add an autocomplete widget in an address form that searches postal codes and locality names through the post.ch API.
It depends on Bootstrap 5 to produce the autocomplete widget.
Quick start
Add “city_ch_autocomplete” to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ..., "city_ch_autocomplete", ]
Include city_ch_autocomplete urls to your urlpatterns:
urlpatterns = [ ..., path("", include("city_ch_autocomplete.urls")), ..., ]
Get an API access from the Swiss Post (starting from https://developer.apis.post.ch/ui/home). Note the process can take some time. Then add the POST_API_USER and POST_API_PASSWORD settings to your project.
Optionally you can get the data from a CSV and put it in a database table. Read below for more details.
In the target form(s) of your project, add the CityChMixin to your form inheritance and a CityChField as a form field:
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>'
Don’t forget to include {{ form.media }} in the templates where you are using the form.
Searching from the database
If for some reason, you would prefer searching postcodes/names from a database table instead from the Swiss Post API, you can search on the Net for a CSV file containing the information. The PLZdb.import_from_csv(csv_path) class method allows for importing such data. Then set the POST_API_USER setting to None and the view will search from the database instead.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for city_ch_autocomplete-0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f43c1519a7670ce7a2e256568695c74ee9167a328f84c69ec2bb9a1bf770cca |
|
MD5 | 0ece1a49898b858602142b0310e5f415 |
|
BLAKE2b-256 | 5505669f391f0e91bc75d8f04b85564c9dff959e8a223772b174e4c28c95c218 |