Skip to main content
django-cities-light -- *Simple django-cities alternative*
=========================================================

This add-on provides models and commands to import country/city data into your
database.
The data is pulled from `GeoNames
<http://www.geonames.org/>`_ 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
<https://github.com/coderholic/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
-----------------

django-autocomplete-light
~~~~~~~~~~~~~~~~~~~~~~~~~

If `autocomplete_light` from `django-autocomplete-light
<https://github.com/yourlabs/django-autocomplete-light/>`_, you
have two channels and a widget for City ModelChoiceField that has two
autocompletes: one for the country, and one for the city that is filtered by
the selected country.

Check out:

- `example project README
<https://github.com/yourlabs/django-autocomplete-light/blob/master/test_project/README>`_,
- `example project source code
<https://github.com/yourlabs/django-autocomplete-light/tree/master/test_project>`_,
- `example widget usage
<https://github.com/yourlabs/django-autocomplete-light/blob/master/test_project/project_specific/forms.py>`_.

django-ajax-selects
~~~~~~~~~~~~~~~~~~~

If `ajax_selects` from
`django-ajax-selects
<https://github.com/crucialfelix/django-ajax-selects>`_, you
should have two new channels usable right away:

- `cities_light_country`
- `cities_light_city`

Ideas for contribution
----------------------

- django-modeltranslation support and alternateNames.txt
- country flags support

I might implement this in the next project or refactor of
my projects that use django-cities-light. In the mean time,
this app just works because it's so simple. I wonder if there's a bug ....

Metadata

Release files for django-cities-light 1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-cities-light 1.2
File Size Uploaded
django-cities-light-1.2.tar.gz 11.4 kB Details

Release files / django-cities-light-1.2.tar.gz

Download URL django-cities-light-1.2.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
0b78fbb0547abf5bedce2a7bef0739e47c39f2f0b4a2a262b7cc06e16ef9f3aa
BLAKE2b-256 checksum
How to use checksums
0158d0c2f219df88450badf1e9814420db78dc8d564767e886500ce9324326fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

3.11

2 release files

3.10.2

2 release files

3.10.0

2 release files

3.9.2

2 release files

3.9.1

2 release files

3.9.0

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.0

1 release file

3.6.0

1 release file

3.5.1

1 release file

3.5.0

1 release file

3.4.0

1 release file

3.3.0

1 release file

3.2.0

1 release file

3.1.2

1 release file

3.1.0

1 release file

3.0.5

1 release file

3.0.4

1 release file

3.0.3

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

2.4.3

1 release file

2.4.2

1 release file

2.4.1

1 release file

2.4.0

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.1.13

1 release file

2.1.12

1 release file

2.1.11

1 release file

2.1.10

1 release file

2.1.9

1 release file

2.1.8

1 release file

2.1.7

1 release file

2.1.6

1 release file

2.1.5

1 release file

2.1.4

1 release file

2.1.3

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.9

1 release file

2.0.8

1 release file

2.0.7

1 release file

2.0.6

1 release file

2.0.5

1 release file

2.0.4

1 release file

2.0.2

1 release file

2.0.1

1 release file

2.0.0

1 release file

1.9.4

1 release file

1.9.3

1 release file

1.9.2

1 release file

1.9.1

1 release file

1.9.0

1 release file

1.8

1 release file

1.7

1 release file

1.5.1

1 release file

1.5

1 release file

1.4

1 release file

1.3

1 release file

This release

1.2 This release

1 release file

1.1

1 release file

1.0

1 release file

0.19

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page