Форум сайта python.su
Приветствую. С проверкой разрешений столкнулся впервые, поэтому, скорее всего, это я что-то не так делаю. Пожалуйста, подскажите что именно.
Django 1.2.1. Database backend - sqlite3.
Есть приложение abc. В нем модель TimeTable. Есть пользователь (активный и все с ним хорошо). Даю ему в админке все три права на эту модель. Сохраняю.
В django shell для этого пользователя делаю:
u.user_permissions.all()
[<Permission: abc | time table | Can add time table>, <Permission: abc | time table | Can change time table>, <Permission: abc | time table | Can delete time table>]
id = 52
name = Can add time table
content_type_id = 18
codename = add_timetable
Отредактировано (Авг. 15, 2010 21:25:45)
Офлайн
Попробуй еще раз прочитать доку. http://docs.djangoproject.com/en/dev/topics/auth/#methods
Но у тебя скорее всего просто не сохранено для инстанции `` u `` проверь в админке там должно быть выделено в поле прав то что ты хочешь чтобы было add_timetable=True
Офлайн
Проблема решена.
Причина была в собственном authentication backend - в нем не было нужных методов проверки разрешений. Переписал backend наследованием от django.contrib.auth.backends.ModelBackend и переопределением только одного метода - authenticate.
Офлайн