Приложение Users, системы Карта Успеха — различия между версиями
Материал из m6a
Vshpagin (обсуждение | вклад) (Новая страница: «== 1. Общее описание == Приложение `users` отвечает за управление пользователями системы, вклю…») |
Vshpagin (обсуждение | вклад) (→6.2 Функциональные представления) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
Строка 24: | Строка 24: | ||
=== 3.1 Формы === | === 3.1 Формы === | ||
− | + | class CustomUserCreationForm: | |
+ | fields = ['username', 'email', 'password'] | ||
+ | |||
+ | class CustomUserChangeForm: | ||
+ | fields = ['username', 'first_name', 'last_name', 'email'] | ||
=== 3.2 Валидация === | === 3.2 Валидация === | ||
Строка 32: | Строка 36: | ||
== 4. URL маршруты == | == 4. URL маршруты == | ||
− | + | /users/ | |
− | + | ├── profile/ # Профиль пользователя | |
− | + | ├── login/ # Вход в систему | |
− | + | ├── register/ # Регистрация | |
− | + | ├── logout/ # Выход | |
− | + | └── password_reset/ # Восстановление пароля | |
+ | └── done/ # Страница после запроса сброса | ||
== 5. Шаблоны == | == 5. Шаблоны == | ||
Строка 57: | Строка 62: | ||
=== 6.1 Классовые представления === | === 6.1 Классовые представления === | ||
− | + | class UserProfileView(LoginRequiredMixin, View): | |
− | + | # Управление профилем | |
− | + | ||
− | + | class RegisterView(View): | |
− | ) | + | # Регистрация пользователей |
+ | |||
+ | class CustomPasswordResetView(auth_views.PasswordResetView): | ||
+ | # Сброс пароля | ||
=== 6.2 Функциональные представления === | === 6.2 Функциональные представления === | ||
− | + | def login_view(request): | |
− | + | # Обработка входа | |
− | + | ||
== 7. Особенности реализации == | == 7. Особенности реализации == |
Текущая версия на 13:51, 30 марта 2025
Содержание
1. Общее описание
Приложение `users` отвечает за управление пользователями системы, включая регистрацию, аутентификацию, управление профилем и восстановление пароля.
2. Функциональность
2.1 Аутентификация
- Вход в систему (`login_view`)
- Регистрация новых пользователей (`RegisterView`)
- Выход из системы (`LogoutView`)
- Восстановление пароля (`CustomPasswordResetView`)
2.2 Управление профилем
- Просмотр профиля (`UserProfileView`)
- Редактирование профиля
- Обновление личных данных
2.3 Безопасность
- Валидация email
- Проверка уникальности email
- Безопасное хранение паролей
- Защита от CSRF
3. Модели и формы
3.1 Формы
class CustomUserCreationForm: fields = ['username', 'email', 'password']
class CustomUserChangeForm: fields = ['username', 'first_name', 'last_name', 'email']
3.2 Валидация
- Проверка уникальности email
- Валидация паролей
- Проверка обязательных полей
4. URL маршруты
/users/ ├── profile/ # Профиль пользователя ├── login/ # Вход в систему ├── register/ # Регистрация ├── logout/ # Выход └── password_reset/ # Восстановление пароля └── done/ # Страница после запроса сброса
5. Шаблоны
5.1 Основные шаблоны
- `login.html` - форма входа
- `register.html` - форма регистрации
- `profile.html` - профиль пользователя
5.2 Шаблоны восстановления пароля
- `password_reset.html` - запрос сброса
- `password_reset_done.html` - подтверждение отправки
- `password_reset_confirm.html` - установка нового пароля
- `password_reset_complete.html` - завершение сброса
- `password_reset_email.html` - шаблон email
- `password_reset_subject.txt` - тема email
6. Представления (Views)
6.1 Классовые представления
class UserProfileView(LoginRequiredMixin, View): # Управление профилем
class RegisterView(View): # Регистрация пользователей
class CustomPasswordResetView(auth_views.PasswordResetView): # Сброс пароля
6.2 Функциональные представления
def login_view(request): # Обработка входа
7. Особенности реализации
7.1 Аутентификация
- Использование email как username
- Кастомная форма входа
- Сообщения об ошибках
7.2 Профиль пользователя
- Отображение даты регистрации
- Редактирование личных данных
- Валидация изменений
7.3 Восстановление пароля
- Отправка email
- Временные ссылки
- Подтверждение сброса
8. Безопасность
8.1 Защита
- CSRF токены
- Хеширование паролей
- Проверка прав доступа
8.2 Валидация
- Проверка email
- Валидация паролей
- Проверка уникальности
9. Интерфейс
9.1 Формы
- Стилизованные поля ввода
- Валидация на стороне клиента
- Сообщения об ошибках
9.2 Навигация
- Ссылки между формами
- Редиректы после действий
- Информативные сообщения
10. Интеграция
10.1 С системой
- Интеграция с Django Auth
- Использование стандартных компонентов
- Кастомизация шаблонов
10.2 С другими приложениями
- Связь с основными моделями
- Использование в других приложениях
- Общий контекст пользователя