如何在Django中保存已编辑的信息。 我想编辑用户配置文件,并希望将它们保存到我的数据库中。 为此,我做了这个方法
@login_required()
def saveProfile(request):
if request.method =='POST':
print "heloo"
usr=request.POST['username']
first_name=request.POST['first_name']
last_name=request.POST['last_name']
email=request.POST['email']
mobile=request.POST.get('mobile_no')
exp=request.POST.get('experience')
skills=request.POST.get('Skills')
edu=request.POST.get('education')
linkedin=request.POST.get('linkedin_id')
print first_name
updated_values={'first_name': first_name}
Consultants.objects.filter(user__username=usr).update(skills=skills, user__first_name=first_name )
return HttpResponse("your account is updated succesfully")
现在,当我执行上述代码时,它会保存技能信息,但会抛出错误消息Consultants has no field named 'user__first_name
'
如何访问OneToOne模型字段
答案 0 :(得分:0)
您无法在一个update-statement中更新两个db表。您必须单独更新Consultants
(将其命名为Consultant
个)和User
模型:
cons = Consultants.objects.filter(user__username=usr)
# update profile model
cons.update(skills=skills)
# update user model
User.objects
.filter(id__in=cons.values_list('user_id', flat=True))
.update(first_name=first_name)
除此之外,我建议您对Consultant
使用django model form,添加User
的字段并覆盖save
方法以保存相关{ {1}}实例。