Welcome to django-authority’s documentation!

django-authority is a powerful layer between Django’s basic permission system (provided through django.contrib.auth) and your application:


This application provides three abilities:

  1. It gives you the ability to add permissions like Django’s generic permissions to any kind of model without having to add them to the model’s Meta class.
  2. It provides a very simple way to create per-object-permissions. You might be more familiar with the term row level permissions.
  3. It wraps Django’s generic permissions so you can use the same syntax as for the options above. But note that django-authority does not add any voodoo-code to Django’s contrib.auth system, it keeps your existing permission system intact!

django-authority uses a cache that is stored on the user object to help improve performance. However, if the Permission table changes the cache will need to be invalidated. More information about this can be found in the tips and tricks section.


We have just started with the documentation and it’s far from being perfect. If you find glitches, errors or just have feedback, please contact the team: Support.



The create-permission topics are based on each other. If you are new to django-authority we encourage to read from top to bottom.

Installation topics:

Create and check permissions:

Permission checks in detail

Permission assigning and handling