Форум сайта python.su
Добрый день!
Товарищи, читал доку, смотрел, все равно не могу понять как пользователя добавлять права.
Дайте пожалуйста пример.
Пытался делать так:
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
Отредактировано (Март 18, 2008 12:24:12)
Офлайн
Офлайн
Давайте вместе разбираться.
1. Во view как часть url попадает имя права- permission. Оно состоит из двух частей разделенных точкой. Первая часть - название приложения; вторая - название конкретного права (точнее его код)
2. Далее в строке:
package, codename = permission.split('.')
p = Permission.objects.get(content_type__app=package, codename=codename)
Отредактировано (Март 18, 2008 14:08:59)
Офлайн
спасибо понял.
опять появились вопросы.
1.content_type__book говорит что неправильно(TypeError at /usertest/ Cannot resolve keyword ‘book’ into field), почему такое может быть ?
2. как же все таки добавить пользователю прав?(НЕ через админку)
Отредактировано (Март 18, 2008 15:57:21)
Офлайн