170 похожих чатов

Подскажите пожалуйста я могу разделить авторизацию в джанго отдельном от

стандартной? Без использования 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 = 'Специалисты'

11 ответов

22 просмотра

по идеи джанго не обязывает делать авторизацию только так

Borys- Автор вопроса

Насколько я правильно понимаю, если делать через AbstractUser, AbstractBaseUser и пользователь будет логинится на сайте, то это будет же значить что он как бы и в админку попал?

не знаю, я не большой эксперт джанго

Borys- Автор вопроса

В гугле одни примеры по изменению стандартной модели авторизации для админа, может подскажете где можно поискать примеры создания подобной функциональности с нуля? В кратце: 1. Есть админка (стандартные набор Users, Groups) 2. Добавил отдельную модель Experts, там я хочу заводить с админки новых пользователей у которых на фронте будет личный кабинет (т.е. поля такие как мыло пароль и т д должны быть в этой новой модели) 3. На сайте пользователю доступна только авторизация, т.е идентифицировать должно добавленных специалистов по email адресу.

какой тип авторизации планируешь использовать?

Borys- Автор вопроса

через email и пароль

тоесть, пользователь вводит имейл и пароль, и если всё ок - его пускает на сайт, да?

Borys- Автор вопроса

Да

получается тебе нужно как-то сравнить введённые данные и те данные которые есть в базе данных не знаю как это лучше всего делать в джанго, но, по идеи выглядит так есть модель у которой есть поля имейл и пароль на эндпоинт приходит запрос, в теле которого есть данные для авторизации дальше нужно написать метод который будет идти в базу, брать нужного юзера и сравнивать данные

тогда чем не угодили реализации “которые везде"?

Borys- Автор вопроса

Если я переопределю стандартную авторизацию допустим с логина на email, то оно же зацепит админку

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта