2013-07-25 30 views
0

我有關於Django視圖的權限問題。permission_required不工作查看

我對view.py代碼:

@login_required(login_url='/kullaniciGirisi/') 
@permission_required('reservationApp.change_reservation', login_url='/') 
def rezervasyonDuzenle(request, id): 

有兩個應用:應用1:用戶登陸,應用2:reservationApp

我分配在用戶登陸權限和但我用permission_required上reservationApp

作業:

username = request.POST['username'] 
    password = request.POST['password'] 
    user = authenticate(username=username, password=password) 
    pr = Permission.objects.get(codename='change_reservation') 
    group = Group.objects.get(name='rol1') 
    group.permissions.add(pr) 
    userN = User.objects.get(username=username) 
    userN.groups.add(group) 

permission_require d不工作,每次它返回到login_url:/ 你對什麼問題有什麼想法?

+0

你可以仔細檢查用戶/組是否有權限在管理員或數據庫中正確保存/正確給出 - 只是一個建議 – iamkhush

+0

他們被重定向到哪個'login_url',爲什麼你有兩個不同的? –

+0

是的,權限保存在數據庫中並且正確。 – user2582546

回答

0

如果您被重定向到login_url,用戶未登錄或用戶沒有權限reservationApp.change_reservation。你能縮小這些情況嗎?

如果您不確定發生了什麼事,請在本地刪除@permission_required修飾器,然後將其放在頂部(或僅使用import pdb; pdb.set_trace())。

def rezervasyonDuzenle(request, id): 
    print request.user.is_authenticated() 
    print request.user.user_permissions.all() 
+0

不,用戶已登錄並且:@login_required(login_url ='/ kullaniciGirisi /') @permission_required('reservationApp.change_reservation',login_url ='/')謝謝 – user2582546

+0

請幫助meee – user2582546

+0

問題解決了,謝謝 – user2582546

0

您可能正在用超級用戶登錄。註銷並與其他用戶登錄,您的問題可能會得到解決。我有這個問題,當我這樣做,解決了。

0

您可能需要改變你的任務,

user = authenticate(username=username, password=password) 
if user: 
    pr = Permission.objects.get(codename='change_reservation') 
    group = Group.objects.get(name='rol1') 
    group.permissions.add(pr) 
    group.save() 
    user.groups.add(group) 
    user.save() 

您需要保存更改,才作罷。