python - Django save() 不发送到数据库
问题描述
我的 from 没有将数据发送到数据库这里是我的 view.py 和 form.py 但他们没有在我的控制台上报告错误
视图.py
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
return redirect('../login/')
else:
form = RegistrationForm()
args = {'form': form}
return render(request, 'account/register.html', args)
表格.py
class RegistrationForm(UserCreationForm):
# first_name forms.CharField(... that i cut here to win some space
def save(self, commit=True):
user = super(RegistrationForm, self).save(commit=False)
user.email = self.cleaned_data['email']
user.first_name = self.cleaned_data['first_name']
user.last_name = self.cleaned_data['last_name']
if commit:
user.save()
return user
解决方案
你忘了打电话给form.save()
你。这就是为什么您的表单永远不会被保存的原因。
使固定:
def register(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
form.save() # <- ATTENTION.
return redirect('../login/')
else:
form = RegistrationForm()
return render(request, 'account/register.html', {
'form': form,
})
旁注
不要硬编码重定向路径(即../login
)。在您的urls.py
文件中,为 url 命名(例如path('login/', views.my_login, name='my_login')
),并使用该名称进行重定向(例如return redirect('my_login')
.
推荐阅读
- php - PHP 复杂 XML 到 JSON 解析
- python - 熊猫数据框根据其他列是否有数据添加新列
- java - 在“/storage/emulated/0/Pictures/”中找不到文件
- c++ - Clang 不能编译基本的头文件(比如
) 在 macOS 中 - android - 如何在 Android Q 中获取深度图
- java - Drools 7.x 在运行时动态加载规则而不使用 maven
- node.js - 如何同时渲染页面执行函数调用
- shopify - 如何在后端接收 Shopify 商店事件
- android - RecyclerView 除非收到通知,否则不会将数据绑定到 ViewHolder
- java - 优化递归回溯