扩展用户模型未正确保存密码



im试图用相同的形式同时创建子对象和父对象。

迁移后,我有两个表,用户一如既往和医生,它们与用户的关系在一个名为user_ptr_id的额外列中。

models.py:

class Doctor(User):
collegiated = models.CharField(verbose_name="Nº Colegiado", max_length=20, null=True, blank=True)
phone = models.CharField(verbose_name="Teléfono", max_length=12, null=True, blank=True)
class Patient(User):
age = models.PositiveIntegerField(verbose_name="Edad", blank=True)

forms.py:

class DoctorForm(forms.ModelForm):
class Meta:
model = app_models.Doctor
fields = ['username', 'email', 'password']

view.py:

if request.method == 'POST:
form = DoctorForm(request.POST.copy())
if form.is_valid():
forms.save()
else:
form = DoctorForm()
return ...

创建了两个对象,医生和用户,与user_ptr_id有很好的关联,但用户密码似乎未加密。?如何在儿童模型上集成UserCreationForm??我该如何解决这个问题?

有人能帮我吗?提前谢谢。

在您的视图中使用此选项

还导入生成密码

from django.contrib.auth.hashers import make_password
def user_signup(request):
if request.method == "POST":
user_form = userSignup(request.POST)
phone = request.POST['phone']
address = request.POST['address']
pincode = request.POST['pincode']
if user_form.is_valid() :
# Hash password using make_password() function
user = user_form.save(commit=False)
user.password = make_password(user.password)
user.save()
...

相关内容

最新更新