Skip to content
A Django-based implementation of the OpenGovernment context, compliant with the Popolo data specifications.
Branch: master
Clone or download
Latest commit 50e55c8 Dec 6, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
popolo Person and Organization `add_ownership` method changed to reflect Dec 5, 2019
.gitignore gitignore reverted to ignore all of .idea dir Mar 6, 2019
.travis.yml exclusions in build matrix corrected Sep 13, 2017
AUTHORS models and basic tests implemented Jul 19, 2013 Update CHANGELOG Feb 20, 2019
LICENSE models and basic tests implemented Jul 19, 2013 README.rst -> Feb 19, 2019
pyproject.toml Fix Nov 12, 2019
setup.cfg Integrate .bumpversion.cfg into setup.cfg Feb 19, 2019 README.rst -> Feb 19, 2019
tests_requirements.txt OtherName NAME_TYPES modified to hold AKAs May 3, 2018
tox.ini test Jul 23, 2013


Welcome to the documentation for django-popolo!

django-popolo is a django-based implementation of the Popolo's open government data specifications.

It is developed as a Django reusable app to be deployed directly within Django projects.

It will allow web developers using it to manage and store data according to Popolo's specifications.

The standard sql-oriented Django ORM will be used.

From release 1.2.0, django-popolo includes classes that extend the model, although compatibility with the standard is kept.

Release 2.0.0 introduces a change in how Sources and Links are referred to, that breaks compatibility with the popit importer.

See the file for more details.


To install django-popolo as a third party app within a django project, you need to add it to the django project's requirements.txt. You can do this from GitHub in the usual way, or using the django-popolo package on PyPI.

Running the Tests

Set up the test environment with:

    pip install -r tests_requirements.txt
    python install

You can run the tests with:

    python test



Notes on mysociety's fork

mysociety/django-popolo is a fork of this project where integer IDs are used instead of slugs.

Our packages, since version 1.1 also uses numerical ids as primary keys for all entities. Slugs are available as non-primary fields, for the 4 main classes (Person, Organization, Post, Membership). Slugs are used through the Permalinkable behavior, that adds the slug field to the class, populating it according to rules defined in each class.

You can’t perform that action at this time.