我正在尝试存储一些关于刚刚登录的用户的额外信息。实际上我有一个不同的表单,一旦页面加载,登录的用户需要填写。我希望针对已登录的用户存储额外信息。我已分配一对一关系,但出现此错误。
Cannot assign "'username'": "PersonalDetail.user" must be a "User" instance
模型
class PersonalDetail(models.Model):
user= models.OneToOneField(User, null=True, on_delete=models.CASCADE)
age= models.IntegerField( null=True)
phone= models.CharField(max_length=10,null=True )
pan= models.CharField(max_length=10, null=True)
enrollment_no= models.CharField(max_length=30, null=True)
state= models.CharField(max_length=40 , null=True)
观看次数
if request.method =='POST':
user= request.POST.get("user")
age= request.POST.get("age")
phone= request.POST.get("phone")
pan= request.POST.get("pan")
enrollment_no= request.POST.get("enrollment_no")
state = request.POST.get("state")
details=PersonalDetail(user=user ,age=age, phone= phone, pan= pan, enrollment_no=enrollment_no, state=state )
details.save()
return render(request, 'consult.html')
我是初学者,请更正我的代码,因为我无法根据登录的用户 ID 或用户名存储这些信息。这个表单是在他发送的页面旁边接收到登录用户的,因此必须将其存储在不同的表中。
答案 0 :(得分:1)
不要从表单中获取用户信息。
在view.py
if request.method =='POST':
age= request.POST.get("age")
phone= request.POST.get("phone")
pan= request.POST.get("pan")
enrollment_no= request.POST.get("enrollment_no")
state = request.POST.get("state")
user = request.user
details=PersonalDetail(user=user ,age=age, phone= phone, pan= pan, enrollment_no=enrollment_no, state=state )
details.save()
return render(request, 'consult.html')
希望这对你有用。