Приложение Users, системы Карта Успеха — различия между версиями
Материал из m6a
								
												
				Vshpagin (обсуждение | вклад)  (→4. URL маршруты)  | 
				Vshpagin (обсуждение | вклад)   (→6.2 Функциональные представления)  | 
				||
| (не показана одна промежуточная версия этого же участника) | |||
| Строка 62: | Строка 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 С другими приложениями
- Связь с основными моделями
 - Использование в других приложениях
 - Общий контекст пользователя