px
pypx

django-countries

v9.0.0

Provides a country field for Django models.

910 KB Python 3.10+ py3-none-anyMIT License2 deps
Diff
$ uv add django-countries

Django Countries

A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Documentation

📚 Read the full documentation

Quick Start

Install:

pip install django-countries

Add to INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    'django_countries',
]

Use in your models:

from django_countries.fields import CountryField

class Person(models.Model):
    country = CountryField()

Features

  • Country Field: Django model field with all ISO 3166-1 countries
  • Translated Names: Country names translated using Django's i18n system
  • Flag Icons: Static flag image files for all countries
  • REST Framework: Full Django REST Framework integration
  • GraphQL: Support for graphene-django
  • Multiple Selection: Support for multiple country selection

Support

  • Python: 3.10, 3.11, 3.12, 3.13, 3.14
  • Django: 4.2 (LTS), 5.2 (LTS), 6.0
  • Django REST Framework: 3.14+

Contributing

Contributions are welcome! See the Contributing Guide for details.

Translations

Country names are translated using Django's standard gettext and imported from our Transifex project.

Details

Version
9.0.0
License
MIT License
Python
>=3.10
Maintainer
Chris Beaven

Release Cadence

9
releases in the past year
avg 57 days between releases

Maintainers