📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Django Framework Django Permissions

Django Permissions

5 min read
Assign model permissions and Groups — check permissions in views and templates.

Permissions and Groups

from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType

# Model-level permissions (auto-created: add, change, delete, view)
user.has_perm("blog.add_post")
user.has_perm("blog.change_post")

# Custom permissions in model Meta
class Post(models.Model):
    class Meta:
        permissions = [
            ("publish_post", "Can publish posts"),
            ("feature_post", "Can feature posts"),
        ]

# Assign permission
permission = Permission.objects.get(codename="publish_post")
user.user_permissions.add(permission)

# Groups
from django.contrib.auth.models import Group
editors = Group.objects.create(name="Editors")
editors.permissions.add(permission)
user.groups.add(editors)

# Template
{% if perms.blog.publish_post %}
    <button>Publish</button>
{% endif %}