Django版本:4.0.2 Django-Registration版本:0.8 应用程序名称:userAccounts
问题: 我正在尝试创建一个名为“教授”的用户类型,扩展了用户模型。我可以完成注册过程,但问题是只有用户保存在数据库中,教授表保持为空。因此,我认为问题可能出在保存方法上。有什么线索可以说明问题吗?
SETTINGS.PY
AUTH_PROFILE_MODULE = "userAccounts.Professor"
MODELS.PY - 在这里,我创建了一个从用户继承的模型,并添加了一个示例字段。
from django.db import models
from django.contrib.auth.models import User
class Professor(models.Model):
user = models.ForeignKey(User, unique=True)
exampleField = models.CharField(max_length=100)
FORMS.PY - 当用户保存时,我会在教授表中保存一个新的个人资料。
from django import forms
from registration.forms import RegistrationForm
from models import Professor
from registration.models import RegistrationProfile
class CustomRegistrationForm(RegistrationForm):
exampleField = forms.CharField()
def save(self, profile_callback=None):
new_user = RegistrationProfile.objects.create_inactive_user(
username=self.cleaned_data['username'],
password=self.cleaned_data['password1'],
email = self.cleaned_data['email'])
new_professor = Professor(
user=new_user,
exampleField=self.cleaned_data['exampleField'])
new_professor.save()
return new_user
注意:我正在遵循这篇文章:Registration form with profile's field