Source code for django_geopostcodes.models

# -*- coding: utf-8 -*-
"""
    django_geopostcodes.models
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

    Django models for django-geopostcodes.

"""
from __future__ import absolute_import, print_function, unicode_literals
from django.contrib.gis.db import models
from django.utils.translation import ugettext_lazy as _
from django_countries.fields import CountryField
from .managers import LocalityManager


[docs]class Locality(models.Model): """ Defines an Locality as defined in GeoPostCodes GeoPC_xx_Places.csv files. """ iso = CountryField(_('iso'), db_index=True, help_text=_('ISO 3166-1 Country code')) country = models.CharField(_('country'), max_length=50, help_text=_('Country name')) language = models.CharField(_('language'), max_length=2, db_index=True, help_text=_('ISO 639-1 language code')) region1 = models.CharField(_('region 1'), max_length=80, db_index=True, help_text=_('Administrative region level 1')) region2 = models.CharField(_('region 2'), max_length=80, db_index=True, help_text=_('Administrative region level 2')) region3 = models.CharField(_('region 3'), max_length=80, db_index=True, help_text=_('Administrative region level 3')) region4 = models.CharField(_('region 4'), max_length=80, db_index=True, help_text=_('Administrative region level 4')) locality = models.CharField(_('locality'), max_length=80, db_index=True, help_text=_('Locality name')) postcode = models.CharField(_('locality'), max_length=15, db_index=True, help_text=_('ZIP/Postal code')) suburb = models.CharField(_('locality'), max_length=80, help_text=_('Locality subdivision')) latitude = models.FloatField(_('latitude'), help_text=_('Latitude coordinates in WGS84')) longitude = models.FloatField(_('longitude'), help_text=_('Longitude coordinates in WGS84')) elevation = models.IntegerField(_('elevation'), help_text=_('Elevation in meters')) point = models.PointField(db_index=True) iso2 = models.CharField(_('ISO2'), max_length=10, help_text=_('ISO 3166-2 Region code')) fips = models.CharField(_('FIPS'), max_length=10, help_text=_('NGA Geopolitical code (formerly FIPS PUB 10-4)')) nuts = models.CharField(_('NUTS'), max_length=12, help_text=_('European subdivision code')) hasc = models.CharField(_('HASC'), max_length=12, help_text=_('Hierarchical administrative subdivision code')) stat = models.CharField(_('STAT'), max_length=20, help_text=_('National statistics/census code')) timezone = models.CharField(_('timezone'), max_length=30, help_text=_('Time zone name (Olson)')) utc = models.CharField(_('utc'), max_length=10, help_text=_('Coordinated Universal Time')) dst = models.CharField(_('dst'), max_length=10, help_text=_('Daylight Saving Time')) objects = LocalityManager() def __str__(self): return self.locality