如何在django中保存编辑个人资料

时间:2016-05-01 09:20:39

标签: python django

如何在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模型字段

1 个答案:

答案 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}}实例。