2014-04-10 29 views
0

我想編輯用戶權限。Django檢查模板中的用戶權限

我查看

def edit_roles(request,username): 
    user = User.objects.get(username=username) 
    user_permissions = user.get_all_permissions() 
    permissions = Permission.objects.filter(Q(codename='can_create_product') | Q(codename='can_view_product') 
    return render_to_response('users/edit_user_roles.html',{'permissions':permissions,'user_permissions':user_permissions},context_instance=RequestContext(request)) 

我的模板

<table> 
    <tr> 
     <th>Permission</th> 
     <th>Access</th> 
    </tr> 
    {% for permission in permissions %} 
     <tr class="item-row"> 
      <td> 
       {{permission.name}} 
      </td> 
      <td> 
       <input type="checkbox" name="" {% if permission in user_permissions %} checked="checked" {% endif %} /> 
      </td> 
     </tr> 
    {% endfor %} 
</table> 

現在,我得到的用戶權限。但{% if permission in user_permissions %}無法正常工作。請給我一個解決這個問題的好方法。

回答

1

嘗試獲取用戶的權限是這樣的:

user_permissions = user.user_permissions.all() 
1

也許你可以用request.user.get_all_permissions替換user_permissions? (如果你想獲得發送請求的用戶的權限)。

您可以在文檔中獲得關於this method的更多信息。

但是,根據this previous StackOverflow anwser,可能有更有效的方法來檢查模板中的權限。