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 = [..., 'plz', 'ort', ...] city_auto = CityCHField(...) postal_code_model_field = 'plz' city_model_field = 'ort'
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.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50d4280331963d7d26865de141cfac6b4b78a0ac07bfccae062819e91be7ad2a |
|
MD5 | 8a914399997e2fd891169ae2468ccde5 |
|
BLAKE2b-256 | 868fe3c1dafa41510df8424edbc85ede00f7ebc16a7debd7ece4be65a347c19b |