[英]Django check user permission in template
我想编辑用户权限。
我的观点
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 %}
不起作用。 请建议我解决这个问题的好方法。
也许你可以通过request.user.get_all_permissions
替换user_permissions
? (如果您想获得发送请求的用户的权限)。
您可以在文档中获得有关此方法的更多信息。
但是,根据之前的StackOverflow anwser ,可能有一种更有效的方法来检查模板中的权限。
尝试以这种方式获取用户的权限:
user_permissions = user.user_permissions.all()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.