グループEuropartsBuyer
とProduct
という名前のモデルがあります。
次のコードは、Productモデルに権限を追加します。
class Meta:
permissions = (
("can_add_cost_price", "Can add cost price"),
)
私のビューの1つに、このアクセス許可をそのグループに追加する次のコードがあります。
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)
Django Adminの助けを借りて、グループEuropartsBuyer
にユーザーを追加しました。
別のビューで次のコードを使用すると
if request.user.has_perm('can_add_cost_price'):
do something
結果はTrue
になるはずですが、False
が表示されています。したがって、if句の下のコードは実行されません。
現在ログインしているユーザーをDjango Shellにインポートしました。もう一度アクセス許可をテストすると、Falseと表示されます。
ここで何が悪いのですか?
これを試して:
if request.user.has_perm('app_name.can_add_cost_price'):
docs から:
ここで、各パーマは「app_label.permission codename」の形式です。