6.4 KiB
6.4 KiB
Кортежи статуса пола
GENDER_CHOICES = (
('n', 'Не указано'),
('m', 'Мужчина'),
('f', 'Женщина'),
)
Модель пользователя
first_name(CharField): Имя пользователя (до 60 символов).last_name(CharField): Фамилия пользователя (до 60 символов).**gender**(CharField): Пол пользователя (выбор из предустановленных значений).email(EmailField): Адрес электронной почты пользователя (уникальный).username(CharField): Никнейм пользователя (до 60 символов).bio(TextField): О себе (опционально, многострочное поле).image(URLField): Ссылка на аватар пользователя.followers(ManyToManyField): Подписчики пользователя.address(CharField): Адрес пользователя (до 255 символов, опционально).date_joined(DateTimeField): Дата регистрации пользователя (автоматически).last_updated(DateTimeField): Время последнего обновления профиля.last_login(DateTimeField): Время последней авторизации.status(BooleanField): Статус активности пользователя.
Сериализатор
- 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-токен при аутентификации пользователя.
Маршрутизатор
-
/users/login:- URL для входа в учетную запись.
- Обрабатывается функцией
account_loginиз модуляviewsв приложенииconfig.accounts. - Имеет имя
account-loginдля ссылок и представлений.
-
/users:- URL для регистрации новой учетной записи пользователя.
- Обрабатывается функцией
account_registrationиз модуляviewsв приложенииconfig.accounts. - Имеет имя
account-registrationдля ссылок и представлений.
-
/user:- URL для получения информации о текущем пользователе.
- Обрабатывается классом
UserViewкак представление, используя методы GET и PUT. - Имеет имя
user-accountдля ссылок и представлений.
-
/logout/:- URL для выхода из учетной записи.
- Обрабатывается функцией
signoutиз модуляviewsв приложенииconfig.accounts. - Имеет имя
logoutдля ссылок и представлений.
-
/profiles/:- URL для работы с профилями пользователей.
- Используется вместе с DefaultRouter, который автоматически создает CRUD-маршруты для профилей.
- Имеет имя
profiledetailview-list,profiledetailview-detailи т.д. для ссылок и представлений.
Контроллер (Views и API)
-
account_registration:- URL:
/users/registration/(POST) - Описание: Регистрация новой учетной записи пользователя.
- Входные данные: JSON объект с данными пользователя.
- Выходные данные: JSON объект с данными зарегистрированного пользователя.
- URL:
-
account_login:- URL:
/users/login/(POST) - Описание: Вход пользователя в учетную запись.
- Входные данные: JSON объект с email и паролем пользователя.
- Выходные данные: JSON объект с данными пользователя и JWT-токеном для аутентификации.
- URL:
-
UserView:- URL:
/user/(GET, PUT) - Описание: Получение информации о текущем пользователе и обновление данных пользователя.
- GET: Получение данных пользователя.
- PUT: Обновление данных пользователя.
- URL:
-
ProfileDetailView:- URL:
/profiles/(GET, POST, DELETE) - Описание: Управление профилями пользователей.
- GET: Получение данных профиля пользователя по его имени пользователя (username).
- POST: Добавление пользователя в список подписчиков (followers) или удаление из него.
- DELETE: Удаление пользователя из списка подписчиков (followers).
- URL:
-
signout:- URL:
/logout/ - Описание: Выход пользователя из учетной записи и перенаправление на главную страницу.
- URL: