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()
...