Permissions¶
- synopsis
Permissions Mixins to limit access and model instances in a view.
Introduction¶
Django Extensions offers mixins for Class Based Views that make it easier to query and limit access to certain views.
Current Mixins¶
ModelUserFieldPermissionMixin - A Class Based View mixin that limits the accessibility to the view based on the “owner” of the view.
This will check if the currently logged in user (self.request.user
) matches the owner of the model instance.
By default, the “owner” will be called “user”.
# models.py
from django.db import models
from django.conf import settings
class MyModel(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete = models.CASCADE)
content = models.TextField()
# views.py
from django.views.generic import UpdateView
from django_extensions.auth.mixins import ModelUserFieldPermissionMixin
from .models import MyModel
class MyModelUpdateView(ModelUserFieldPermissionMixin, UpdateView):
model = MyModel
template_name = 'mymodels/update.html'
model_permission_user_field = 'author'