1
私はグループEuropartsBuyer
とProduct
というモデルを持っています。Djangoで現在のユーザーの権限をグループから確認するには?
次のコードは、製品モデルにアクセス許可を追加します。
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
にユーザーを追加しました。
Iは
if request.user.has_perm('can_add_cost_price'):
do something
別のビューで次のコードを使用すると結果がTrue
ことになっているが、それはFalse
を示しています。したがって、if節の下のコードは実行されません。
現在ログインしているユーザーをDjangoシェルにインポートしましたが、再度アクセス許可をテストするとFalseと表示されます。
私はここで間違っていますか?
からrequest.userどうかを確認しましたAnonymousUserインスタンスですか? –
@ThulasiRamはい。私は特定のビューにアクセスするためにログインする必要があります。 – MiniGunnR
あなたがログインしているにもかかわらず、DRFを使用し、認証クラスを削除した場合、そのユーザーは匿名になります。だからあなたはあなたが確信できるように許可をチェックする前に、まずrequest.userを印刷してみることができます。 @MiniGunnR –