2017-02-06 7 views
1

그룹 EuropartsBuyerProduct이라는 모델이 있습니다.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) 

장고 관리자의 도움을 받아 EuropartsBuyer 그룹에 사용자를 추가했습니다. 내가 다른보기

if request.user.has_perm('can_add_cost_price'): 
    do something 

에 다음 코드를 사용할 때

이 결과는 True 있어야하는데하지만 False을 보이고있다. 따라서 if 절 아래의 코드는 실행되지 않습니다.

장고 쉘에 현재 로그인 한 사용자를 가져 왔으며 권한을 다시 테스트 할 때 False를 표시합니다.

내가 뭘 잘못하고 있니?

+0

는 형식입니다 AnonymousUser 인스턴스입니까? –

+0

@ThulasiRam 예. 특정보기에 액세스하려면 로그인해야합니다. – MiniGunnR

+0

비록 내가 로그인했지만 DRF를 사용하고 인증 클래스를 제거했다면 요청이 사용자가 익명으로 처리됩니다. 그래서 당신은 확신 할 수있는 방법으로 권한을 확인하기 전에 request.user를 먼저 인쇄 해 볼 수 있습니까? @MiniGunnR –

답변

4

이 시도 :

if request.user.has_perm('app_name.can_add_cost_price'): 

docs에서 :

각 파마 당신이 request.user 있는지 확인 했나 'app_label.permission 코드 명'