Полностью обходя аутентификацию и пользовательскую модель Django - PullRequest
0 голосов
/ 26 ноября 2018

Так что это для домашнего задания, где у меня есть открытый выбор для использования любой технологии, которую я хочу.Это курс по базам данных, поэтому единственным требованием является то, что весь мой SQL должен быть написан самостоятельно.Я добился успеха в этом со всем, за исключением пользовательской модели.

Чего я хотел бы добиться, так это в основном использовать существующую базу данных, предварительно заполненную именами пользователей и простыми текстовыми паролями для аутентификации.Поскольку это домашнее задание, безопасность вообще не имеет значения, программа никогда не выйдет в интернет.

Я просто хочу использовать свою существующую базу данных для аутентификации.Мой код полон LoginRequiredMixins и т. Д., Поэтому мне нужно, чтобы моя аутентификация возвращала объект пользователя, но обходила поля пользовательской модели Django и хэшированные пароли и т. Д. Я также хотел бы использовать свои собственные имена полей для входа в систему и т. Д. Вместо имени пользователя и пароля яхотел бы иметь электронную почту и PIN-код.

Мне не нужны какие-либо страницы регистрации или возможность подписываться кем-либо, только то, что уже есть в моей таблице.

Любые ресурсы, на которые вы можете указать мне или помочь, как можнодостичь этого?Спасибо.

1 Ответ

0 голосов
/ 26 ноября 2018

Вы можете полностью переписать систему аутентификации Django со своей.Вот хороший пример - https://docs.djangoproject.com/en/2.1/topics/auth/customizing/#a-full-example.

Вы можете создать приложение и объявить свою собственную модель пользователя.В этом примере вы можете перезаписать пользовательскую модель собственными полями:

class MyUser(AbstractBaseUser):
    email = models.EmailField(
        verbose_name='email address',
        max_length=255,
        unique=True,
    )
    date_of_birth = models.DateField()
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

Однако я бы предложил использовать Flask , поскольку она предлагает гораздо большую гибкость.

Надеюсь, это поможет.

...