стандартной? Без использования AbstractUser, или User?
А просто создать отдельную модель для авторизации пользователей только на сайте (не в админку)
class Expert(models.Model):
full_name = models.CharField(max_length=255, blank=True, null=True, verbose_name='Имя, Фамилия')
email = models.EmailField(max_length=255, null=True, blank=True, verbose_name='Email', unique=True)
phone = models.CharField(max_length=255, null=True, blank=True, verbose_name='Номер телефона')
image = ThumbnailerImageField(verbose_name='Фото профиля')
roles = models.ManyToManyField(Role, verbose_name='Роли')
created_at = models.DateField(auto_now_add=True, verbose_name='Дата создания')
def role(self):
return ",\n".join([str(r) for r in self.roles.all()])
def __str__(self):
return f"{self.full_name}"
class Meta:
verbose_name_plural = 'Специалисты'
по идеи джанго не обязывает делать авторизацию только так
Насколько я правильно понимаю, если делать через AbstractUser, AbstractBaseUser и пользователь будет логинится на сайте, то это будет же значить что он как бы и в админку попал?
не знаю, я не большой эксперт джанго
В гугле одни примеры по изменению стандартной модели авторизации для админа, может подскажете где можно поискать примеры создания подобной функциональности с нуля? В кратце: 1. Есть админка (стандартные набор Users, Groups) 2. Добавил отдельную модель Experts, там я хочу заводить с админки новых пользователей у которых на фронте будет личный кабинет (т.е. поля такие как мыло пароль и т д должны быть в этой новой модели) 3. На сайте пользователю доступна только авторизация, т.е идентифицировать должно добавленных специалистов по email адресу.
какой тип авторизации планируешь использовать?
через email и пароль
тоесть, пользователь вводит имейл и пароль, и если всё ок - его пускает на сайт, да?
Да
получается тебе нужно как-то сравнить введённые данные и те данные которые есть в базе данных не знаю как это лучше всего делать в джанго, но, по идеи выглядит так есть модель у которой есть поля имейл и пароль на эндпоинт приходит запрос, в теле которого есть данные для авторизации дальше нужно написать метод который будет идти в базу, брать нужного юзера и сравнивать данные
тогда чем не угодили реализации “которые везде"?
Если я переопределю стандартную авторизацию допустим с логина на email, то оно же зацепит админку
Обсуждают сегодня