140500
This commit is contained in:
92
BACKEND/ACCOUNTS.md
Normal file
92
BACKEND/ACCOUNTS.md
Normal file
@@ -0,0 +1,92 @@
|
||||
## Кортежи статуса пола
|
||||
GENDER_CHOICES = (
|
||||
('n', 'Не указано'),
|
||||
('m', 'Мужчина'),
|
||||
('f', 'Женщина'),
|
||||
)
|
||||
## Модель пользователя
|
||||
1. **`first_name`** (CharField): Имя пользователя (до 60 символов).
|
||||
2. **`last_name`** (CharField): Фамилия пользователя (до 60 символов).
|
||||
3. `**gender**` (CharField): Пол пользователя (выбор из предустановленных значений).
|
||||
4. **`email`** (EmailField): Адрес электронной почты пользователя (уникальный).
|
||||
5. **`username`** (CharField): Никнейм пользователя (до 60 символов).
|
||||
6. **`bio`** (TextField): О себе (опционально, многострочное поле).
|
||||
7. **`image`** (URLField): Ссылка на аватар пользователя.
|
||||
8. **`followers`** (ManyToManyField): Подписчики пользователя.
|
||||
9. **`address`** (CharField): Адрес пользователя (до 255 символов, опционально).
|
||||
10. **`date_joined`** (DateTimeField): Дата регистрации пользователя (автоматически).
|
||||
11. **`last_updated`** (DateTimeField): Время последнего обновления профиля.
|
||||
12. **`last_login`** (DateTimeField): Время последней авторизации.
|
||||
13. **`status`** (BooleanField): Статус активности пользователя.
|
||||
## Сериализатор
|
||||
|
||||
1. **UserSerializer**:
|
||||
- `username` (CharField): Никнейм пользователя.
|
||||
- `email` (EmailField): Адрес электронной почты пользователя.
|
||||
- `password` (CharField): Пароль пользователя (только для записи).
|
||||
- `first_name` (CharField): Имя пользователя.
|
||||
- `last_name` (CharField): Фамилия пользователя.
|
||||
- `gender` (ChoiceField): Пол пользователя (выбор из предустановленных значений).
|
||||
- `bio` (TextField): Биография пользователя.
|
||||
- `image` (URLField): URL-адрес аватара пользователя.
|
||||
- `status` (BooleanField): Статус активности пользователя.
|
||||
- Метод `create`: Создание нового пользователя с установкой пароля.
|
||||
- Метод `update`: Обновление информации о пользователе, включая пароль.
|
||||
- Дополнительно: Возвращает JWT-токен при аутентификации пользователя.
|
||||
## Маршрутизатор
|
||||
|
||||
1. **`/users/login`**:
|
||||
- URL для входа в учетную запись.
|
||||
- Обрабатывается функцией `account_login` из модуля `views` в приложении `config.accounts`.
|
||||
- Имеет имя `account-login` для ссылок и представлений.
|
||||
|
||||
2. **`/users`**:
|
||||
- URL для регистрации новой учетной записи пользователя.
|
||||
- Обрабатывается функцией `account_registration` из модуля `views` в приложении `config.accounts`.
|
||||
- Имеет имя `account-registration` для ссылок и представлений.
|
||||
|
||||
3. **`/user`**:
|
||||
- URL для получения информации о текущем пользователе.
|
||||
- Обрабатывается классом `UserView` как представление, используя методы GET и PUT.
|
||||
- Имеет имя `user-account` для ссылок и представлений.
|
||||
|
||||
4. **`/logout/`**:
|
||||
- URL для выхода из учетной записи.
|
||||
- Обрабатывается функцией `signout` из модуля `views` в приложении `config.accounts`.
|
||||
- Имеет имя `logout` для ссылок и представлений.
|
||||
|
||||
5. **`/profiles/`**:
|
||||
- URL для работы с профилями пользователей.
|
||||
- Используется вместе с DefaultRouter, который автоматически создает CRUD-маршруты для профилей.
|
||||
- Имеет имя `profiledetailview-list`, `profiledetailview-detail` и т.д. для ссылок и представлений.
|
||||
|
||||
## Контроллер (Views и API)
|
||||
|
||||
1. **`account_registration`**:
|
||||
- URL: `/users/registration/` (POST)
|
||||
- Описание: Регистрация новой учетной записи пользователя.
|
||||
- Входные данные: JSON объект с данными пользователя.
|
||||
- Выходные данные: JSON объект с данными зарегистрированного пользователя.
|
||||
|
||||
2. **`account_login`**:
|
||||
- URL: `/users/login/` (POST)
|
||||
- Описание: Вход пользователя в учетную запись.
|
||||
- Входные данные: JSON объект с email и паролем пользователя.
|
||||
- Выходные данные: JSON объект с данными пользователя и JWT-токеном для аутентификации.
|
||||
|
||||
3. **`UserView`**:
|
||||
- URL: `/user/` (GET, PUT)
|
||||
- Описание: Получение информации о текущем пользователе и обновление данных пользователя.
|
||||
- GET: Получение данных пользователя.
|
||||
- PUT: Обновление данных пользователя.
|
||||
|
||||
4. **`ProfileDetailView`**:
|
||||
- URL: `/profiles/` (GET, POST, DELETE)
|
||||
- Описание: Управление профилями пользователей.
|
||||
- GET: Получение данных профиля пользователя по его имени пользователя (username).
|
||||
- POST: Добавление пользователя в список подписчиков (followers) или удаление из него.
|
||||
- DELETE: Удаление пользователя из списка подписчиков (followers).
|
||||
|
||||
5. **`signout`**:
|
||||
- URL: `/logout/`
|
||||
- Описание: Выход пользователя из учетной записи и перенаправление на главную страницу.
|
||||
Reference in New Issue
Block a user