Skip to main content

A Django application which provides country choices for use with forms, and a country field for models.

To use the flags, use the django.contrib.staticfiles app added in Django 1.3 (or django-staticfiles application for previous Django versions).

CountryField

A country field for Django models that provides all ISO 3166-1 countries as choices.

CountryField is based on Django’s CharField, providing choices corresponding to the official ISO 3166-1 list of countries (with a default max_length of 2).

Consider the following model using a CountryField:

from django.db import models
from django_countries import CountryField

class Person(models.Model):
    name = models.CharField(max_length=100)
    country = CountryField()

Any Person instance will have a country attribute that you can use to get details of the person’s country:

>>> person = Person(name='Chris', country='NZ')
>>> person.country
Country(code='NZ')
>>> person.country.name
u'New Zealand'
>>> person.country.flag
u'/static/flags/nz.gif'

This object (person.country in the example) is a Country instance, which is described below.

The Country object

An object used to represent a country, instanciated with a two character country code.

It can be compared to other objects as if it was a string containing the country code, and it’s __unicode__ method returns the country code.

name

Contains the full country name.

flag

Contains a URL to the flag. 'flags/[lowercasecountrycode].gif' is appended to the STATIC_URL setting, or if that isn’t set, the MEDIA_URL setting.

Country Choices

The django_countries.countries module contains some constants which can be used to generate choices lists for a Django Select form field.

COUNTRIES

A tuple of two part tuples, each consisting of a country code and the corresponding nicely titled (and translatable) country name.

COUNTRIES_PLUS

A tuple, similar to COUNTRIES, but also includes duplicates for countries that contain a comma (i.e. the non-comma’d version).

OFFICIAL_COUNTRIES

A dictionary where each key is a country code and each value is the corresponding official capitalised ISO 3166-1 English country name.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-countries-1.3.tar.gz (164.1 kB view details)

Uploaded Source

File details

Details for the file django-countries-1.3.tar.gz.

File metadata

  • Download URL: django-countries-1.3.tar.gz
  • Upload date:
  • Size: 164.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-countries-1.3.tar.gz
Algorithm Hash digest
SHA256 3912ddfdb57567a42f8b3f0066622b87c690e84d3c24c2c32a35ffe5aec6ddd8
MD5 5e0a3a96fdb4a038dc82566f05b4b343
BLAKE2b-256 7d4ce81dee5f6cdb1403e19de2fe2a23fc7b5bf50d8dc8225ee138c0ebccda5a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page