如何在djang中保存编辑配置文件

2024-04-27 20:16:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: name信息编辑getemailrequestusrusername
1条回答
网友
1楼 · 发布于 2024-04-27 20:16:38

不能在一个update语句中更新两个db表。您必须分别更新Consultants(命名为Consultantpls)和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方法,以便保存相关的User实例。你知道吗

相关问题 更多 >