python - 使用自定义表单中的数据更新数据库
问题描述
好的,所以我想使用如下所示的自定义表单更新有关用户的信息。
<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')
解决方案
在分配它们之前检查返回的值怎么样?
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')
推荐阅读
- r - 在R中从长到宽重塑列表
- mod-rewrite - 存在更多 IIS URL 映射时出现内部服务器错误
- ruby-on-rails - 比较 2 种不同格式的日期以匹配或不匹配 Ruby on Rails 6
- reactjs - 如何将 react-app-rewired 与 webpack 开发服务器一起使用?
- python - MySQL在python中选择多个变量
- python - 加快 pandas 计算
- angular - Angular Paginator 分页页面大小选项选择在页面下方
- codeigniter - Infinityfree.net 和 codeigniter
- sql - SQL-当连接不涵盖它们时,如何添加与ID直接对应的命名列
- php - 更改查看购物车按钮以添加到购物车按钮