Search code examples
djangopermissionsauthenticationextend

Extending Django User for Permission


I just want List user to be under permission , so i just made one custom model like below

from django.db import models
from django.contrib.auth.models import  Permission,User

class Mycustomuser(User):
    class Meta:
        permissions = (
            ('users','users'),
            ('view_user', 'View user'),
        )

In views i simply called

items=Mycustomuser.objects.all()

It is returning user id with 4 only.

I did so because i made following permission using django guardian

task = MyCustomuser.objects.create()
joe = User.objects.get(username__exact='admin')
assign('view_category', joe, task)

Now i want to check that permission whenever MyCustomuser is called.


Solution

  • It is not necessary and also not recommended to extend User model. See Storing additional information about users.

    That said, you can create Permissions without setting permissions model Meta attribute, see Programmatically creating permissions.