我对使用自己的模型进行身份验证有疑问。在我的项目中,我有一个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模型被识别为用户(在管理站点中)并使用“电子邮件”作为用户名登录?
答案 0 :(得分:0)
您应该查看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