1 file was added to this release more than 14 days after its initial publication. Inspect the release files before installing.
This add-on provides models and commands to import country/city data into your database. The data is pulled from GeoNames and contains:
country names
optionnal city names
Spatial query support is not required by this application.
This application is very simple and is useful if you want to make a simple address book for example. If you intend to build a fully featured spatial database, you should use django-cities.
Installation
Install django-cities-light:
pip install django-cities-light
Or the development version:
pip install -e git+git@github.com:yourlabs/django-cities-light.git#egg=cities_light
Add cities_light to your INSTALLED_APPS.
You may not need the city model and database table. A project like betspire.com doesn’t need it for instance. So the City model will be made ‘abstract’ if this setting is set as such:
CITIES_LIGHT_ENABLE_CITY=False
Now, run syncdb, it will only create tables for models that are not disabled:
./manage.py syncdb
Data update
Finnaly, populate your database with command:
./manage.py cities_light
This command is well documented, consult the help with:
./manage.py help cities_light
Filtering data import
An example is worth 1000 words: if you want to import only cities from France, USA and Belgium you could do as such:
import cities_light
def filter_city_import(sender, items, **kwargs):
if items[8] not in ('FR', 'US', 'BE'):
raise cities_light.InvalidItems()
cities_light.signals.city_items_pre_import.connect(filter_city_import)
Note: this signal gets a list rather than a City instance for performance reasons.
Configure logging
This command is made to be compatible with background usage like from cron, to keep the database fresh. So it doesn’t do direct output. To get output from this command, simply configure a handler and formatter for cities_light logger. For example:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
},
},
'loggers': {
'cities_light': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
},
# also use this one to see SQL queries
'django': {
'handlers':['console'],
'propagate': True,
'level':'DEBUG',
},
}
}
Ajax autocomplete
If ajax_selects from django-ajax-selects, you should have two new channels usable right away:
cities_light_country
cities_light_city
Next features
django-modeltranslation support and alternateNames.txt
country flags support
Metadata
Release files for django-cities-light 1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
File added late
1 file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release files before installing.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-cities-light-1.0.tar.gz | 10.5 kB | Details |
Release files / django-cities-light-1.0.tar.gz
File added late
This file was uploaded more than 14 days after the first file in this release.
While project maintainers occasionally add legitimate files to an existing release, late additions can also indicate a security compromise.
We recommend inspecting the release file before installing.
| Download URL | django-cities-light-1.0.tar.gz |
|---|---|
| Size | 10.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1c9c8d9a1144563fa1b904eacea21adbc3ed73e66f3581ec427bb563ff91014e
|
|
BLAKE2b-256 checksum How to use checksums |
432796c5a83fd6a0e5e257dbc56700ff176aa4dccad4a011d5d019d9844d28c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |