1
我有一個組EuropartsBuyer
和型號Product
。如何在Django中檢查當前用戶的權限?
以下代碼向產品模型添加權限。
class Meta:
permissions = (
("can_add_cost_price", "Can add cost price"),
)
在我的一個觀點中,我有以下代碼將此權限添加到該組。
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。
我在這裏做錯了什麼?
你檢查request.user是一個AnonymousUser實例? –
@ ThulasiRam是的。我必須登錄才能訪問該特定視圖。 – MiniGunnR
我得到但如果您使用DRF並刪除了身份驗證類,但您在請求中登錄了..用戶將是匿名。所以你可以嘗試打印request.user之前檢查權限,你可以肯定的方式。 @MiniGunnR –