I have a group EuropartsBuyer
and model named Product
.
The following code adds a permission to the Product model.
class Meta:
permissions = (
("can_add_cost_price", "Can add cost price"),
)
In one of my views I have the following code to add this permission to that group.
europarts_buyer, created = Group.objects.get_or_create(name='EuropartsBuyer')
add_cost_price = Permission.objects.get(codename='can_add_cost_price')
europarts_buyer.permissions.add(add_cost_price)
With the help of Django Admin I have added a user to the group EuropartsBuyer
.
When I use the following code in another view
if request.user.has_perm('can_add_cost_price'):
do something
the result is supposed to be True
but it is showing False
. Thus, the code under the if clause doesn't run.
I have imported the currently logged in user in Django shell and when I test the permission again it shows False.
What am I doing wrong here?
Try this:
if request.user.has_perm('app_name.can_add_cost_price'):
From the docs:
where each perm is in the format 'app_label.permission codename'