Использование собственной модели для входа пользователя - PullRequest
0 голосов
/ 19 октября 2018

У меня есть сомнения по поводу аутентификации с моей собственной моделью.В моем проекте у меня есть модель Pacient, и мне нужно, чтобы она была сохранена на панели «Пользователи» на сайте администратора.

В основном я восстанавливаю данные из HTML-формы (они были сгенерированы в видезапрос на тест)

(не беспокойтесь о проверках)

models.py

class Pacient(models.Model):
    name = models.CharField()
    birthday = models.DateField()
    email = models.EmailField()
    password = models.CharField()
    confirmPass = models.CharField()

В файле forms.py

class PacientForm(forms.ModelForm):
    name = forms.CharField
    birthday = forms.DateField
    email = forms.EmailField
    password = forms.CharField
    confirmPass = forms.CharField


class Meta:
    model = Pacient
    fields =('name','birthday','email','password','confirmPass')

Используя эти поля, я могу сохранить данныев таблице Pacient.Его можно увидеть на сайте администратора, но отдельно от групп и пользователей под именем проекта.

Итак, мой вопрос таков.Как я могу сделать так, чтобы модель Pacient была опознана как пользователь (на сайте администратора) и войти в систему, используя «email» в качестве имени пользователя?

1 Ответ

0 голосов
/ 19 октября 2018

Вы должны посмотреть на модель AbstractBaseUser:

from django.contrib.auth.models import AbstractBaseUser

Эта базовая модель может быть унаследована вашей моделью Pacient, тогда в файле settings.py вы можете установить:

AUTH_USER_MODEL = 'yourapp.Pacient'

Это скажет django использовать вашу модель для аутентификации.

Больше информации здесь: https://docs.djangoproject.com/en/2.1/topics/auth/customizing/#django.contrib.auth.models.CustomUser

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...