Vue d'ensemble

Django Guardian 2.4, publié le 1er juin 2022, ajoute le support de Django 4.x pour les permissions par objet.

Fonctionnalités principales

Support Django 4.x

Guardian 2.4 est compatible avec Django 4.0 et 4.1, intégrant les changements du système d'authentification et les nouvelles API admin.

python
from guardian.shortcuts import assign_perm, get_perms
from django.contrib.auth.models import User

user = User.objects.get(username='alice')
# article = Article.objects.get(pk=1)

# Assigner une permission par objet
# assign_perm('change_article', user, article)
# perms = get_perms(user, article)
# print(perms)  # ['change_article']

Performance améliorée

Les requêtes de vérification de permissions sont optimisées avec un meilleur cache et des requêtes SQL plus efficaces.

python
from guardian.shortcuts import get_objects_for_user
from django.contrib.auth.models import User

user = User.objects.get(username='alice')

# Récupérer les objets avec permission
# articles = get_objects_for_user(
#     user, 'change_article', Article
# )
# print(f'{articles.count()} articles modifiables')

Sources