django permissions add code example

Example 1: django group with permission

from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
from api.models import Project
new_group, created = Group.objects.get_or_create(name='new_group')
# Code to add permission to group ???
ct = ContentType.objects.get_for_model(Project)

# Now what - Say I want to add 'Can add project' permission to new_group?
permission = Permission.objects.create(codename='can_add_project',
                                   name='Can add project',
                                   content_type=ct)
new_group.permissions.add(permission)

Example 2: django user permission check

# all your import goes here for Models.py
...

# Adding Permissions to a Model.
class BlogPost(models.Model):
  ... # model fields
  class Meta:
    permissions = [('can_write_blog', 'Can Write Blog')]
    

# Checking permissions in Views.py
if request.user.has_perm('app_name.can_write_blog'):
  # give access to blog post form
else:
  # restrict user from access the page.