J'ai un groupe EuropartsBuyer
et un modèle nommé Product
.
Le code suivant ajoute une autorisation au modèle de produit.
class Meta:
permissions = (
("can_add_cost_price", "Can add cost price"),
)
Dans l'une de mes vues, j'ai le code suivant pour ajouter cette autorisation à ce groupe.
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)
Avec l'aide de Django Admin, j'ai ajouté un utilisateur au groupe EuropartsBuyer
.
Lorsque j'utilise le code suivant dans une autre vue
if request.user.has_perm('can_add_cost_price'):
do something
le résultat est censé être True
mais il affiche False
. Ainsi, le code sous la clause if ne s'exécute pas.
J'ai importé l'utilisateur actuellement connecté dans Django Shell et lorsque je teste à nouveau l'autorisation, elle affiche False.
Qu'est-ce que je fais mal ici?
Essaye ça:
if request.user.has_perm('app_name.can_add_cost_price'):
De la docs :
où chaque perm est au format "app_label.permission codename"