我正在仅为经过身份验证的用户创建一个编辑配置文件表单。该用户已通过身份验证,但在完成编辑配置文件表单时会出现错误,即“ NOT NULL约束失败:home_profile.user_id”
删除迁移并重新迁移
if request.method=="POST":
firstname = request.POST.get('firstname')
middlename = request.POST.get('middlename')
lastname = request.POST.get('lastname')
bloodGroup = request.POST.get('bloodGroup')
professionalStatus = request.POST.get('professionalStatus')
image = request.POST.get('image')
prof_update = Profile(firstname=firstname,
lastname=lastname,
middlename=middlename,
bloodGroup=bloodGroup,
)
prof_update.save()
已保存表单
答案 0 :(得分:0)
执行此操作时:
prof_update = Profile(firstname=firstname,
lastname=lastname,
middlename=middlename,
bloodGroup=bloodGroup, )
您正在尝试创建新的个人资料,但可能用户不见了。
您应该将代码更改为:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# ...
# other fields come here
# ...
# later on when you need to create a new `Profile`:
user = User.objects.create_user(username=username, email=email,
password=password1,
first_name=first_name,
last_name=last_name)
user.is_active = True
user.save()
p = Profile.objects.create(user=user,
# add other custom fields here,
)
p.save() # not necessary if I remember