代碼如下:
from django.shortcuts import render, redirect
import re
from user.models import User
from django.urls import reverse
# Create your views here.
# /user/register
def register(request):
"""注冊"""
if request.method == 'GET':
return render(request, 'register.html')
else:
# 進行注冊處理
# 1.接收資料
username = request.POST.get('user_name')
password = request.POST.get('pwd')
email = request.POST.get('email')
allow = request.POST.get('allow')
# 2.資料校驗
if not all([username, password, email]):
# 資料不完整
return render(request, 'register.html', {'errmsg': '資料不完整'})
# 校驗郵箱
if not re.match(r"^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$", email):
return render(request, 'register.html', {'errmsg': '郵箱不合法'})
if allow != 'on':
return render(request, 'register.html', {'errmsg': '請同意協議'})
# 校驗用戶名是否重復
try:
User.objects.get(username=username)
except User.DoesNotExist:
# 用戶名不存在
user = None
if user:
# 用戶名已存在
return render(request, 'register.html', {'errmsg': '用戶名已存在'})
# 3.進行業務處理:進行用戶注冊
user = User.objects.create_user(username, email, password)
user.is_active = 0
user.save()
# 4.回傳應答
return redirect (reverse('goods:index'))
執行報錯:
Internal Server Error: /user/register
Traceback (most recent call last):
File "D:\Python3\py3\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "D:\Python3\py3\lib\site-packages\django\core\handlers\base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "E:\Python進階\天天生鮮\user\views.py", line 38, in register
user = User.objects.create_user(username, email, password)
File "D:\Python3\py3\lib\site-packages\django\contrib\auth\models.py", line 146, in create_user
return self._create_user(username, email, password, **extra_fields)
File "D:\Python3\py3\lib\site-packages\django\contrib\auth\models.py", line 140, in _create_user
user.save(using=self._db)
File "D:\Python3\py3\lib\site-packages\django\contrib\auth\base_user.py", line 67, in save
super().save(*args, **kwargs)
File "D:\Python3\py3\lib\site-packages\django\db\models\base.py", line 754, in save
force_update=force_update, update_fields=update_fields)
File "D:\Python3\py3\lib\site-packages\django\db\models\base.py", line 792, in save_base
force_update, using, update_fields,
File "D:\Python3\py3\lib\site-packages\django\db\models\base.py", line 895, in _save_table
results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
File "D:\Python3\py3\lib\site-packages\django\db\models\base.py", line 935, in _do_insert
using=using, raw=raw,
File "D:\Python3\py3\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "D:\Python3\py3\lib\site-packages\django\db\models\query.py", line 1249, in _insert
return query.get_compiler(using=using).execute_sql(returning_fields)
File "D:\Python3\py3\lib\site-packages\django\db\models\sql\compiler.py", line 1396, in execute_sql
for sql, params in self.as_sql():
File "D:\Python3\py3\lib\site-packages\django\db\models\sql\compiler.py", line 1341, in as_sql
for obj in self.query.objs
File "D:\Python3\py3\lib\site-packages\django\db\models\sql\compiler.py", line 1341, in <listcomp>
for obj in self.query.objs
File "D:\Python3\py3\lib\site-packages\django\db\models\sql\compiler.py", line 1340, in <listcomp>
[self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
File "D:\Python3\py3\lib\site-packages\django\db\models\sql\compiler.py", line 1281, in prepare_value
value = field.get_db_prep_save(value, connection=self.connection)
File "D:\Python3\py3\lib\site-packages\django\db\models\fields\__init__.py", line 823, in get_db_prep_save
return self.get_db_prep_value(value, connection=connection, prepared=False)
File "D:\Python3\py3\lib\site-packages\django\db\models\fields\__init__.py", line 1378, in get_db_prep_value
value = self.get_prep_value(value)
File "D:\Python3\py3\lib\site-packages\django\db\models\fields\__init__.py", line 1357, in get_prep_value
value = super().get_prep_value(value)
File "D:\Python3\py3\lib\site-packages\django\db\models\fields\__init__.py", line 1217, in get_prep_value
return self.to_python(value)
File "D:\Python3\py3\lib\site-packages\django\db\models\fields\__init__.py", line 1318, in to_python
parsed = parse_datetime(value)
File "D:\Python3\py3\lib\site-packages\django\utils\dateparse.py", line 107, in parse_datetime
match = datetime_re.match(value)
TypeError: expected string or bytes-like object
[20/Oct/2020 22:59:32] "POST /user/register HTTP/1.1" 500 157889
有沒有大佬知道怎么解,我怎么轉都轉不過來。。。。。。。。。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/183214.html
上一篇:5G
