2014-02-15 28 views
0

我想檢查組在模板for循環中有權限。Django Group許可登記模板

我的上下文處理器

from django.contrib.auth.models import User,Group,Permission 
from django.db.models import Q 
def users(request): 
    users = User.objects.filter(is_active=1).exclude(id=request.user.id) 
    groups = Group.objects.exclude(Q(name='customer') | Q(name='vendor') | Q(name='labour')) 
    permissions = Permission.objects.all() 

    return { 
     'all_users': users, 
     'all_groups' : groups, 
     'permissions' : permissions 
    } 

我的模板

<table> 
    <tr> 
     <th>Permission</th> 
     <th>Content Type</th> 
     <th>Access Group</th> 
    </tr> 
    {% for permission in permissions %} 
    <tr class="item-row"> 
     <td> 
      {{permission.name}} 
      <input type="hidden" name="permission_{{permission.id}}" /> 
     </td> 
     <td> 
      {{permission.content_type.app_label}} 
     </td> 
     <td> 
      {% for group in all_groups %} 
       <span class="checkboxes fln"> 
        <span class="checkbox"> 
         <small class="single checkNo">           
          <input type="checkbox" name="group_{{group.id}}_permission_{{permission.id}}"/> 
         </small> 
         <b>{{group.name}}</b> 
        </span> 
       </span> 
      {% endfor %} 
     </td> 
    </tr> 
    {% endfor %} 
</table> 

如果組有權限,我想改變這條線。

<input type="checkbox" name="group_{{group.id}}_permission_{{permission.id}}" {%if 'condition' %} checked="checked" {% endif %}/> 

我該如何檢查組是否具有該權限。

回答

1

組的權限是,好了,權限:

the docs

權限

許多一對多領域的權限:

,所以你可以只是做:

{% if permission in group.permissions.all %} checked="checked" {% endif %} 
+0

沒有運氣,{%如果在group.permissions%權限} x {%else%} y {%endif%}。結果是y。但是,我的auth_group_permissions表具有此組的權限。 –

+1

嘗試編輯。我忘了所有。 – Kip

+0

謝謝。那完美的工作。 –