Страницы

Поиск по вопросам

четверг, 11 июля 2019 г.

Автоматическое добавление разрешений для пользователей

Хотелось бы сделать так, чтобы пользователь, завершивший регистрацию, тут же получал особые разрешения.
Как это реализовать? Есть ли возможность сделать это без создания кастомной модели пользователя?


Ответ

Для того, чтобы добавлять пользователю определенные привилегии, кастомная модель не обязательно. Вариантов несколько:
1) Вы делаете view (отвечает за регистрацию пользователя) - в ней будет форма регистрации (скорее всего, Вы будете использовать ModelForm). Сохраняя форму, можно получить инстанс user'а, и делать с ним что угодно. Если Вы используете для данного случая CreateView, можно переопределить get_success_url или другой метод, где инстанс user'а уже точно доступен (user = self.object)
2) добавлять привилегии можно и через модифицируя форму (переопределить метод save, например)
3) Использовать сигналы. Самый сложный метод и целесообразность его сомнительна. Соответственно, использовать здесь можно сигнал pre_save или post_save (модель User, какая бы она ни была).

Комментариев нет:

Отправить комментарий