首页 > 解决方案 > 使用自定义表单中的数据更新数据库

问题描述

好的,所以我想使用如下所示的自定义表单更新有关用户的信息。

<form action="" >
 <!--csrftoken-->
  <input type="text" placeholder="Your new name" name="name">
  <input type="text" placeholder="Your new email" name="email">
  <input type="text" placeholder="Your new number" name="number">
  <button type="submit" class="raise">Submit</button>
</form>

如何使用已填充的数据更新用户。假设用户填写了号码和电子邮件字段,其余部分留空,电子邮件和号码已更改,但名称保持不变。我正在考虑表单预填充,但这需要另一个数据库请求,我想避免这种情况。

def updateCustomer(request):
    current           = request.user
    if request.method == 'POST':
        newphone      = request.POST['newPhone']
        newemail      = request.POST['email']
        newname       = request.POST['name']     
        addingToBase  = Customer.objects.get(user=current)
        xD            = addingToBase(email=newemail,name=newname,phone=newphone)
        xD.save()
        return redirect('home')

标签: pythondjango

解决方案


在分配它们之前检查返回的值怎么样?

def updateCustomer(request):
    current           = request.user
    if request.method == 'POST':
        newphone      = request.POST['number']
        newemail      = request.POST['email']
        newname       = request.POST['name']    
 
        curCust  = Customer.objects.get(user=current)

        if newphone:
            curCust.phone = newphone

        if newemail:
            curCust.email = newemail

        if newname:
            curCust.name = newname

        if newphone or newemail or newname:            
            curCust.save()

        return redirect('home')

推荐阅读