python - 更新用户配置文件 - Django
问题描述
我创建了一个模板,用于使用 Bootstrap 片段(来自https://www.bootdey.com)更新帐户配置文件。使用 django 默认格式(如 {{ form.as_p }}),可以更新帐户(例如,当我修改名字时,它会在数据库中更改)。当我使用 bootstrap 片段时,它不会更新:它直接进入“主页”而不更新(如 views.py 中所述)。
在forms.py
class EditAccountForm(UserChangeForm):
class Meta:
model = Account
fields = ('email','first_name','last_name')
在views.py
def EditProfile(request):
context= {}
if request.POST:
form = EditAccountForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
email = form.cleaned_data.get("email")
raw_password = form.cleaned_data.get("password1")
account = authenticate(email=email,password=raw_password)
return redirect('profile_page')
else:
context['edit_form'] = form
return redirect('homepage')
else:
form = EditAccountForm(instance=request.user)
context['edit_form'] = form
return render(request,'Account/edit_page.html',context)
模板:edit_profile.html(我只展示了 first_name 部分作为示例)
<form method = "POST" class="form" novalidate="">
{% csrf_token %}
<div class="row">
<div class="col">
<div class="row">
<div class="col">
<div class="form-group">
<label>First name</label>
<input class="form-control" type="text" name="firstna" value={{ edit_form.first_name.value }}>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col d-flex justify-content-end">
<button class="btn btn-primary" type="submit">Save Changes</button>
PS:我更喜欢使用这些片段而不是 Django 风格,因为我发现它们更有吸引力并提供更多自由。
解决方案
如果您正在更改视图中的数据,例如在模板中使用 (name="firstna"),请检查您是否采用相同的值,因此对于 First Name,您必须在视图中采用相同的值。
同样的问题在这里问你可以去下面的链接
推荐阅读
- python - Alpha Vantage API 与 python | 如何遍历列表以生成多个图
- git - VSCode 连接到 cPanel 仓库
- python - 二元分类概率的基础
- c# - ReCaptcha V3 - 如果验证失败怎么办?
- c# - 如何在一个 XY 图上组合两个信号?
- python-3.x - Apache Django 错误 - 从 lib64 加载模块但预期从不同目录加载
- c++ - 使用 clang LibTooling 处理复杂 CMake 结构中的独立源文件
- node.js - 如何将读取的文件添加到数组中并检查每个单词在 nodejs 中是否唯一?
- laravel - 如何更新多个用户的 Laravel
- for-loop - Terraform - 动态嵌套循环