NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4240 most downloaded on PyPI
Per object permissions for Django
Last release 22 days ago
12 Sep 2026
Ships unpredictably
gaps range from 2 weeks to 3.7 years
Some releases are documented
notes for 25 of 58 stable releases
Nothing withdrawn
no release was ever pulled
16 years old
64 releases · first in 2010
Revert "The maintainers have been updated" by @Natgho in #1021
Full Changelog: 3.4.1...3.5.0
One column per quarter.
Micro-cleanup: truthiness checks and redundant pass statements by @sevdog in #1017
Full Changelog: 3.4.0...3.4.1
Bump the github-actions group with 2 updates by @dependabot [bot] in #1013
Full Changelog: 3.3.4...3.4.0
Bump the github-actions group with 4 updates by @dependabot [bot] in #1007
Full Changelog: 3.3.3...3.3.4
Bump the github-actions group with 2 updates by @dependabot [bot] in #998
Full Changelog: 3.3.2...3.3.3
Add note box regarding Meta inheritance by @rgaiacs in #973
Full Changelog: 3.3.1...3.3.2
Improve managers typing and reduce code duplication by @sevdog in #962
Full Changelog: 3.3.0...3.3.1
global perms with uuid hypens bug is fixed by @Natgho in https://github.com/django-guardian/django-guardian/pull/931
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.2.0...3.3.0
Update enforcement contact link in CODE_OF_CONDUCT.md by @Natgho in https://github.com/django-guardian/django-guardian/pull/918
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.1.3...3.2.0
Full Changelog: 3.1.3...3.2.0
django-packages badge is added by @Natgho in #910
Full Changelog: 3.1.2...3.1.3
Fix type and deprecate old name by @Natgho in #902
Full Changelog: 3.1.1...3.1.2
pre-commit checker step is added by @Natgho in #901
⚠️⚠️⚠️ WARNING: This release contains an update to database indexing which should yield considerable additional performance, especially on large table
⚠️⚠️⚠️ WARNING: This release contains an update to database indexing which should yield considerable additional performance, especially on large table permissions lookups (thanks @Natgho for such rigorous performance testing!!!). Following the migration that introduces these indexes, databases should reindex automatically in the background (typically within 0-30s even for large tables): this is unlikely to be noticeable but users may experience a short lived performance hit during this period.
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.0.7...3.1.0
feat: add batch processing parameters to clean_orphan_obj_perms by @Natgho in https://github.com/django-guardian/django-guardian/pull/897
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.0.6...3.0.7
OPS: Remove check-toml hook unable to accept non-homogeneous arrays by @thclark in https://github.com/django-guardian/django-guardian/pull/894
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.0.5...3.0.6
remove mysql as a required dependency to run the tox test suite by @dpgraham4401 in https://github.com/django-guardian/django-guardian/pull/877
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.0.4...3.0.5
Add pre-commit and make linting/formatting consistent by @thclark in https://github.com/django-guardian/django-guardian/pull/884
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.0.3...3.0.4
passed obj to get_group_obj_perms_model by @paulmartin91 in https://github.com/django-guardian/django-guardian/pull/880
Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.0.2...3.0.3
Update icons to Font Awesome Free 6.7.2 by @stefan6419846 in https://github.com/django-guardian/django-guardian/pull/869
mock install from PyPI by @johnthagen in https://github.com/django-guardian/django-guardian/pull/870Full Changelog: https://github.com/django-guardian/django-guardian/compare/3.0.1...3.0.2
We're reasonably sure that this major version does not actually constitute any breaking changes. However, there's been a complete turnover of the main…
This is the culmination of more than FIVE YEARS of commits by various dedicated people, and a lot of wrangling to resurrect django-guardian from the dead. It aims to bring guardian up to date with a new team of maintainers and hit reset on the project going forward - it also encompasses updates to be compatible with the latest, greatest versions of django.
Guardian now has static typing, plus check out the new-look docs 🤩 ... thanks @dpgraham4401 for some substantive contributions here!
There are numerous upgrades to performance that are included here. The majority of users should find performance to be neutral or upgraded 🐎🥇.
⚠️⚠️⚠️⚠️⚠️ WARNING ⚠️⚠️⚠️⚠️⚠️ Some alterations have been made that may affect performance. All were done for good reasons, all were reviewed carefully by the maintainers at the time. But frustratingly we have only a rudimentary benchmarks suite. This PR discusses one such possible scenario.
We're reasonably sure that this major version does not actually constitute any breaking changes. However, there's been a complete turnover of the maintenance team, and we're releasing some features which we didn't touch, review or participate in in any way (although all commits have been doubly reviewed when they were merged).
I've gone over to review this entire release as best as I can but without many days of deep introspection, it's realistically possible to miss some changes that have implications deemed "breaking".
Sensible app developers should be pinning their dependencies like >2, <3 (or tighter) so in most cases, the update to this version (v3) will be a conscious choice as opposed to automatic update. It's therefore much safer for us to make a major version release (then possibly have to update the release notes!), than it is to do a minor version release which risks breaking people's systems.
To further mitigate this risk we'll first issue Release Candidate versions which people can install and give feedback on.
In the past, (eg the 2.0.0 release), removal of old django versions (which we have done in this release) was seen to be a breaking change. With modern dependency resolvers like uv and poetry this should no longer break people's installs (simply prevent them from using newer versions) so in future this will not be deemed a breaking change.
Full Changelog: https://github.com/django-guardian/django-guardian/compare/v2.4.0...3.0.0
Replace deprecated admin_static with static by @OskarPersson in https://github.com/django-guardian/django-guardian/pull/649
Full Changelog: https://github.com/django-guardian/django-guardian/compare/v2.0.0...3.0.0rc1
Fixed default_app_config deprecation by @smithdc1 in https://github.com/django-guardian/django-guardian/pull/721
Historic change log for all releases prior to v3 is available here
any_perm to PermissionRequiredMixinGitHub ActionsFull Changelog: https://github.com/django-guardian/django-guardian/compare/v2.3.0...v2.4.0
[Historic change log for all releases prior to v3 is available here]
Historic change log for all releases prior to v3 is available here
Full Changelog: https://github.com/django-guardian/django-guardian/compare/v2.2.0...v2.3.0
Replace deprecated admin_static with static by @OskarPersson in https://github.com/django-guardian/django-guardian/pull/649
Historic change log for all releases prior to v3 is available here
get_objects_for_userget_users_with_perms to avoid a large joinFull Changelog: https://github.com/django-guardian/django-guardian/compare/v2.1.0...v2.2.0
[Historic change log for all releases prior to v3 is available here]
Historic change log for all releases prior to v3 is available here
django.urls.path in routing
GUARDIAN_AUTO_PREFETCHFull Changelog: https://github.com/django-guardian/django-guardian/compare/v2.0.0...v2.1.0
[Historic change log for all releases prior to v3 is available here]
Historic change log for all releases prior to v3 is available here
Full Changelog: https://github.com/django-guardian/django-guardian/compare/v1.5.1...v2.0.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →