This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Polish region and city data for Django.

This app provides models, admin integration and commands to import region and city data in your database.

The data is pulled from TERYT database (National Official Register of the Territorial Division of the Country). TERYT is maintained by Polish Central Statistical Office (GUS)

Database contains:
  • provinces
  • counties
  • municipalities
  • villages
  • cities
  • city districts

Installation

Install django-cities-teryt

pip install django-cities-teryt

Or dev version

pip install -e git+git@github.com:lukaszbanasiak/django-cities-teryt.git#egg=cities_teryt

Add cities_teryt to your INSTALLED_APPS

INSTALLED_APPS = (
    ...
    'cities_teryt',
)

Now, run syncdb, it will only create tables for models

./manage.py syncdb

Configuration

  1. Download SIMC and TERC xml files from TERYT website http://www.stat.gov.pl/broker/access/prefile/listPreFiles.jspa and save them to one directory.
  2. Setup in your settings.py full path to above directory
# Default directory is `import` dir in `django-cities-teryt` app directory
CITIES_TERYT_IMPORT_DIR = '/path/to/dir'

Importing data

To populate your database with all TERYT data use command

./manage.py cities_teryt --data all --import

To remove data use command

./manage.py cities_teryt --data all --flush

To operate on specific type of data enumerate them after --data argument

./manage.py cities_teryt --data province, county, municipality --import
./manage.py cities_teryt --data city, village, district --flush

Notice

Data have relations so it’s best to import everything. Data are large and take time to import (there’s no progress display). Verbosity is controlled through LOGGING.

Examples

Get City by name

>>> City.objects.get(name='Swarzędz')
<City: Swarzędz (0971502)>

To get name of Municipality of this City we can use parent method or call directly municipality attrib

>>> City.objects.get(name='Swarzędz').parent
<Municipality: Swarzędz (302116)>
>>> City.objects.get(name='Swarzędz').municipality
<Municipality: Buk (302103)>
>>> Municipality.objects.get(city__name='Swarzędz')
<Municipality: Swarzędz (302116)>

In this way we can get also Province or County

>>> City.objects.get(name='Swarzędz').province
<Province: wielkopolskie (30)>
>>> Province.objects.get(city__name='Swarzędz')
<Province: wielkopolskie (30)>

… or even Districts

>>> c = City.objects.get(name='Swarzędz')
>>> c.district_set.all()
[<District: Nowa Wieś (0971519)>, <District: Zieleniec (0971525)>]
>>> District.objects.filter(city=c)
[<District: Nowa Wieś (0971519)>, <District: Zieleniec (0971525)>]

List all Cities in the same County

>>> County.objects.get(city__name='Swarzędz').city_set.all()
[<City: Buk (0970520)>, <City: Murowana Goślina (0971152)>, <City: Kostrzyn (0970885)>, <City: Mosina (0971057)>, <City: Pobiedziska (0971287)>, <City: Puszczykowo (0971376)>, <City: Kórnik (0970922)>, <City: Swarzędz (0971502)>, <City: Luboń (0970974)>, <City: Stęszew (0971494)>]

Get pretty display name

# Village, Municipality, County, Province
>>> print Village.objects.get(name='Kaczkowo', province__name='wielkopolskie').get_display_name()
Kaczkowo, Rydzyna, leszczyński, wielkopolskie
# `Municipality` and `County` for "Poznań" is the same so we got only `City` and `Province` name
>>> print City.objects.get(name='Poznań').get_display_name()
Poznań, wielkopolskie

Requirements

See requirements.txt

Release History

Release History

1.0.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-cities-teryt-1.0.1.zip (13.9 kB) Copy SHA256 Checksum SHA256 Source Oct 1, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting