django - 我在注册表单中的 /accounts/register/ 处有一个 ValueError
问题描述
这是一个views.py
检查注册表单验证的方法,但是当我在服务器中注册一个表单时,我在 /accounts/register/ 找到了一个 ValueError。
class UserFormView(View):
form_class = UserForm
template_name = 'registration/register.html'
# display blank form
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
# process form data
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user = form.save(commit=True)
# cleaned (normalized) data
email = form.cleaned_data['email']
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
date_of_birth = form.cleaned_data['date_of_birth']
phone_number = form.cleaned_data['phone_number']
address = form.cleaned_data['address']
password = form.cleaned_data['password']
user.set_password(password)
user.save()
# returns user objects if credentials are correct
user = authenticate(email=email, password=password)
if user is not None:
if user.is_active:
login(request, user)
return redirect('accounts:home')
return render(request, self.template_name, {'form': form.as_p})
解决方案
原因是您试图在数据库表中保存空白数据。所以而不是这样做
if form.is_valid():
user = form.save(commit=True) # this will try to save your data in db
尝试这个:
if form.is_valid():
user = form.save(commit=False) # return an object that hasn’t yet been saved to the database
您可以在 django 的文档中阅读有关save()方法的更多信息。
推荐阅读
- python - Python - 使用数据库中的图表创建 pdf 报告的过程是什么?
- angular - 构造函数后未调用ngOnInit:Angular 5
- reactjs - 谷歌地图 HOC 没有收到道具
- ios - UIView 未在 ViewController Swift 4 中显示元素
- javascript - 在 Highcharts 漏斗中使用数组数据格式设置颜色
- amazon-web-services - 通过 SQS 向 Elastic Beanstalk Worker Environment 发布消息
- javascript - 检查变量是否未定义且不为空的函数
- serial-port - 没有使用 usb4java 识别的 COM 端口
- google-apps-script - 如何防止 Gmail 插件(小工具)缓存?
- ios - 更新到推荐设置后反应原生构建错误