Django Read Only Admin Save

Really full django read only admin implementation

Project README

.. django-read-only-admin .. README.rst

A django-read-only-admin documentation

|GitHub|_ |Coveralls|_ |pypi-license|_ |pypi-version|_ |pypi-python-version|_ |pypi-django-version|_ |pypi-format|_ |pypi-wheel|_ |pypi-status|_

*django-read-only-admin is a Django reusable application that fully implement read only admin*

.. contents::


  • Obtain your copy of source code from the git repository: $ git clone Or download the latest release from
  • Run $ python ./ install from the repository source tree or the unpacked archive. Or use pip: $ pip install django-read-only-admin.


  • Add "read_only_admin" to settings.INSTALLED_APPS.

.. code-block:: python


  • Run $ python ./ migrate.
  • Then add user/group change/delete/add/readonly model permissions.


READ_ONLY_ADMIN_PERMISSION_PREFIX Read-only permission prefix. Defaults to: "readonly".

READ_ONLY_ADMIN_PERMISSION_NAME_PREFIX Read-only permission name prefix. Defaults to: "Read only".

READ_ONLY_ADMIN_EMPTY_ACTIONS Empty admin actions list (exclude superusers) or just remove delete selected action. Defaults to: True.


Just inherit your custom Django admin class from read_only_admin.admin.ReadonlyAdmin.

.. code-block:: python


from read_only_admin.admin import ReadonlyAdmin

class MyCustomAdmin(ReadonlyAdmin):


Also tabular and stacked inlines are supported.

.. code-block:: python


from read_only_admin.admin import (

class MyCustomTabularInline(ReadonlyTabularInline):

    model: Type[Model] = MyModel
    extra: int = 0

class MyCustomStackedInline(ReadonlyStackedInline):

    model: Type[Model] = MyModel
    extra: int = 0

If you use list_editable in your custom admin classes, copy read_only_admin/templates/admin/pagination.html to your project templates/admin directory.


  1. Fork it <>_
  2. Install GNU Make <>_
  3. Install and configure pyenv <>_ and pyenv-virtualenv plugin <>_
  4. Install and configure direnv <>_
  5. Create environment config from example

.. code-block:: bash

cp .env.example .env
  1. Install development dependencies:

.. code-block:: bash

make install
  1. Create your fix/feature branch:

.. code-block:: bash

git checkout -b my-new-fix-or-feature
  1. Check code style and moreover:

.. code-block:: bash

make check
  1. Run tests:

.. code-block:: bash

make test
  1. Push to the branch:

.. code-block:: bash

git push origin my-new-fix-or-feature
  1. Create a new Pull Request <>_


django-read-only-admin uses the MIT license. Please check the MIT-LICENSE file for more details.

Some part of code fairly stolen from teh internets with reference to the source. So, if you author of this code, please contact me.


Project Website:

Author: Alexei Andrushievich [email protected]

For other authors list see AUTHORS file.

.. |GitHub| image:: :alt: GitHub .. |Coveralls| image:: :alt: Coveralls .. |pypi-license| image:: :alt: License .. |pypi-version| image:: :alt: Version .. |pypi-django-version| image:: :alt: Supported Django version .. |pypi-python-version| image:: :alt: Supported Python version .. |pypi-format| image:: :alt: Package format .. |pypi-wheel| image:: :alt: Python wheel support .. |pypi-status| image:: :alt: Package status .. _GitHub: .. _Coveralls: .. _pypi-license: .. _pypi-version: .. _pypi-django-version: .. _pypi-python-version: .. _pypi-format: .. _pypi-wheel: .. _pypi-status:

Open Source Agenda is not affiliated with "Django Read Only Admin" Project. README Source: vint21h/django-read-only-admin
Open Issues
Last Commit
5 months ago

Open Source Agenda Badge

Open Source Agenda Rating