Python Django用户配置文件模型注册表
我正在开发django项目 现在我正在用个人资料模型制作注册表格 但我有个问题 models.py:Python Django用户配置文件模型注册表,python,django,Python,Django,我正在开发django项目 现在我正在用个人资料模型制作注册表格 但我有个问题 models.py: class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) usernickname = models.CharField(db_column='userNickName', max_length=50, blank=True, null=True) us
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
usernickname = models.CharField(db_column='userNickName', max_length=50, blank=True, null=True)
userbirth = models.DateField(db_column='userBirth', blank=True, null=True)
class Meta:
managed = False
db_table = 'profile'
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
print(instance)
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
forms.py:
from django import forms
from django.contrib.auth.models import User
class UserForm(forms.ModelForm):
userBirth = forms.DateField()
class Meta:
model = User
fields = ('username', 'password', 'userBirth')
widgets = {
'username': forms.TextInput(),
'password': forms.PasswordInput(),
'userBirth': forms.DateField(),
}
views.py:
def join(request):
if request.method == "POST":
userForm = UserForm(request.POST, prefix='user')
profileForm = ProfileForm(request.POST, prefix='profile')
if userForm.is_valid() * profileForm.is_valid():
user = userForm.save()
profile = profileForm.save(commit=False)
profile.user = user
profile.save()
return redirect('index')
else:
userForm = UserForm()
profileForm = ProfileForm()
return render_to_response('registration/join.html',dict(userform=userForm,
profileform=profileForm))
注册时
在/连接处发生内部错误/
1054,“字段列表”中的未知列“profile.user_id”
此错误返回
登录到/admin时,
返回相同的错误。我不知道
我参考了这个博客:
如果您已经有模型配置文件-则添加 db_column=${USER ID db column NAME}在用户字段上 如果没有,则在Meta中设置managed=True 此外,您还可以使用相关的_name='profile'从用户获取配置文件实例
Django尝试按用户id列接受配置文件实例,但无法识别它 在您的forms.py配置文件表单中,我认为您需要添加“user”字段。您是否尝试在user.save user.refresh\u from\u db之前添加此字段是,我试过了。你正在保存一个表单,然后你正在尝试创建一个新用户。你为什么要这样做?你为什么要从数据库中刷新?我试过很多方法来解决这个问题,代码就是其中之一。。那我该怎么办?我不知道你们说的用户域在哪里。浏览量是多少?