Skip to content

icha0s/django-address-app

Repository files navigation

django-address-app

Welcome to Django Address

Python Version codecov wemake-python-styleguide Code style: black wemake.services

Quickstart

Install

pip install django-address-app

Add them to your INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'django_address',
    ...
]

If you want to use your models and don't want to subclass Abstract models, you must inform django_address about your models in settings.py:

# myproject/settings.py
DJANGO_ADDRESS_COUNTRY_MODEL = "my_app.Country"
DJANGO_ADDRESS_REGION_MODEL = "my_app.Region" # or my_app.State, my_app.Province, etc..
DJANGO_ADDRESS_DISTRICT_MODEL = "my_app.District" # or my_app.County
DJANGO_ADDRESS_LOCALITY_MODEL = "my_app.Locality"
DJANGO_ADDRESS_STREET_MODEL = "my_app.Street"
DJANGO_ADDRESS_ADDRESS_MODEL = "my_app.Address"

If you want change behavior processing AddressField, you can use your Service

# myproject/settings.py
DJANGO_ADDRESS_SERVICE_CLASS = "django_address.service.Address"

Example

from django.db import models
from django_address.fields import AddressField

class Order(models.Model):
    """Order model."""
    delivery_address = AddressField(verbose_name="Delivery address")

Setting value:

using dict - required field 'raw' only

obj.address = {
            "raw": "Volodymyrska st, 10",
            "country": "Ukraine",  # can use pk or instance country model
            "country_code": "UA",
            "region": "Kyiv City",  # can use pk or instance Region model
            "region_code": "UA-32",
            "district": "",  # can use pk or instance District model
            "district_code": "",
            "locality": "Kiev",
            "street": "Volodymyrska street",  # can use pk or instance Street model
            "street_number": "10",
            "postal_code": "02000",
            "latitude": 50.456302,
            "longitude": 30.517044,
            "formatted_address": "Khreschatyk St, 15, Kyiv, Ukraine, 02000",
        }

or

obj.address = address # pk or Address model instance

Prerequisites

You will need:

  • python3.8 (see pyproject.toml for full version)
  • django with version 3.0

Development

When developing locally, we use:

Alternatives

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published