Товарищи, читал доку, смотрел, все равно не могу понять как пользователя добавлять права.
Дайте пожалуйста пример.
Пытался делать так:
request.user.user_permissions.add("can_write")
помогите пжл.
request.user.user_permissions.add("can_write")
pochechyevа так нечего и не будет… ибо вы пытаетесь добавить в М2М не объект модели а объект текста…
Пытался делать так:request.user.user_permissions.add("can_write")
from django.contrib.auth.decorators import login_required from django.contrib.auth.models import Permission from django.http import Http404, HttpResponseRedirect @login_required def add_permission(request, permission): redirect_to = request.GET.get('next', request.META.get('HTTP_REFERER', '/')) if request.user.has_perm(permission): return HttpResponseRedirect(redirect_to) try: package, codename = permission.split('.') p = Permission.objects.get(content_type__app=package, codename=codename) except Permission.DoesNotExist: raise Http404 request.user.user_permissions.add(p) request.user.save() return HttpResponseRedirect(redirect_to)
urlpatterns += ('yourapp.views', url(r'^permissions/add/(?P<permission>.*)/', 'add_permission', name='add_permission'), )
http://path/to/yourapp/permissions/add/auth.add_user/
http://path/to/yourapp/permissions/add/auth.change_user/
http://path/to/yourapp/permissions/add/auth.delete_user/
p = Permission.objects.get(content_type__app=package, codename=codename)
content_type__app=package
package, codename = permission.split('.')
p = Permission.objects.get(content_type__app=package, codename=codename)