This add-on provides models and commands to import country, region/state, and city data in your database.
The data is pulled from GeoNames and contains cities, regions/states and countries.
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.
Requirements:
- Python 2.7 or 3.3,
- Django >= 1.6 for django-cities-light 3.x.x
- or Django >= 1.4 <= 1.6 for django-cities-light 2.x.x
- MySQL (better in 3.x.x) or PostgreSQL or SQLite.
- django-south is optionnal, but recommended, for django <= 1.6
Yes, for some reason, code that used to work on MySQL (not without pain xD) does not work anymore. So we're now using django.db.transaction.atomic which comes from Django 1.6 just to support MySQL quacks.
See CHANGELOG.
Install django-cities-light:
pip install django-cities-light
Or the development version:
pip install -e [email protected]:yourlabs/django-cities-light.git#egg=cities_light
Add cities_light to your INSTALLED_APPS.
Configure filters to exclude data you don't want, ie.:
CITIES_LIGHT_TRANSLATION_LANGUAGES = ['fr', 'en'] CITIES_LIGHT_INCLUDE_COUNTRIES = ['FR']
Now, run syncdb, it will only create tables for models that are not disabled:
./manage.py syncdb
Note that this project supports django-south. It is recommended that you use south too else you're on your own for migrations/upgrades.
!DANGER!
Since version 2.4.0, django-cities-light uses django migrations by default. This means that django-south users should add to settings:
SOUTH_MIGRATION_MODULES = { 'cities_light': 'cities_light.south_migrations', }
Finally, populate your database with command:
./manage.py cities_light
This command is well documented, consult the help with:
./manage.py help cities_light
You could subscribe to the mailing list ask questions or just be informed of package updates.