- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想添加或提出验证注册表,但出现此错误: 'ValidationError' 对象没有属性 'strip' 我怎么能跳过它?
如果您能在解决此问题后告诉我验证注册表单的正确方法,请告诉我这些问题,我将不胜感激。先感谢您
class SignUp(UserCreationForm):
def __init__(self, *args, **kwargs):
super(SignUp, self).__init__(*args, **kwargs)
self.error_messages = {
'username_match': 'username is already exist',
'email_match': 'Email is already exist',
'password_mismatch': 'these two password isn\'t match try again'
}
email = forms.EmailField(required=True)
first_name = forms.CharField(required=True)
last_name = forms.CharField(required=True)
# password1 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Password'}))
# password2 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Confirm Password'}))
class Meta:
model = User
fields = ['username',
'first_name',
'last_name',
'password1',
'password2',
'email']
def clean_email(self):
email = self.cleaned_data.get('email')
if User.objects.filter(email=email).exists():
return forms.ValidationError(
self.error_messages['email_match'],
)
return email
def clean_username(self):
username = self.cleaned_data.get('username')
if User.objects.filter(username=username).exists():
return forms.ValidationError(
self.error_messages['username_match'],
)
return username
def clean_password2(self):
password1 = self.cleaned_data.get("password1")
password2 = self.cleaned_data.get("password2")
if password1 and password2 and password1 != password2:
return forms.ValidationError(
self.error_messages['password_mismatch'],
)
return password2
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.set_password(self.cleaned_data["password1"])
if commit:
user.save()
return user
View .py
def register(request):
form = SignUp(None)
if request.method == 'POST':
form = SignUp(request.POST)
if form.is_valid():
form.save()
return redirect('accounts:login')
return form.errors
return render(request, 'accounts/register.html', {'form': form})
编辑新问题:
Traceback (most recent call last):
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al2/website/venv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al2/website/venv/lib/python3.8/site-packages/django/core/handlers/base.py", line 179, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al3/website/accounts/views.py", line 73, in register
return render(request, 'accounts/register.html', {'form': form})
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al2/website/venv/lib/python3.8/site-packages/django/shortcuts.py", line 19, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al2/website/venv/lib/python3.8/site-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al2/website/venv/lib/python3.8/site-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al2/website/venv/lib/python3.8/site-packages/django/template/base.py", line 168, in render
with context.bind_template(self):
File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/media/medo/BE4C6BE74C6B98C3/Cources/Django/all git/Django projects/Es2al/Es2al2/website/venv/lib/python3.8/site-packages/django/template/context.py", line 244, in bind_template
updates.update(processor(self.request))
Exception Type: ValueError at /accounts/register/
Exception Value: dictionary update sequence element #0 has length 207; 2 is required
网址.py
urlpatterns = [
path('register/', views.register, name='register'),
]
最佳答案
你不应该返回 ValidationError
,但是 raise
它。来自 return
这样做,表单假定 username
的结果等是ValidationError
s:
def clean_email(self):
email = self.cleaned_data.get('email')
if User.objects.filter(email=email).exists():
raise forms.ValidationError( # ← raise instead of return
self.error_messages['email_match'],
)
return email
这个原则应该适用于所有
clean_…
方法。
form.errors
,或者至少不是直接的,你可以
print
form.errors
,并将它们传递给上下文,但 View 应返回
HttpResponse
目的:
def register(request):
form = SignUp()
if request.method == 'POST':
form = SignUp(request.POST)
if form.is_valid():
form.save()
return redirect('accounts:login')
# return form.errors
return render(request, 'accounts/register.html', {'form': form})
关于django - 如何解决 'ValidationError' 对象没有属性 'strip' 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64671476/
如标题所述。我可以使用 strip --strip-all 它将所有符号从 .ko 文件中去除。但是,如果我尝试使用 strip --strip-symbol=symbolname 仅删除一个符号,它
我正在使用 BeautifulSoup 在 Python 中完成抓取任务,但遇到了一些奇怪的错误。它提到了 strip,我没有使用它,但我猜可能与 BSoup 的进程有关? 在我试图转到原始 url
简单的问题。如何在 iReport 中的现有 strip 之间插入细节 strip ?比如我现在的情况: 细节 1 细节2 细节 3 ...我想在细节 2 和细节 3 之间添加另一个细节带。有什么简单
我的 strip 仪表板上不断收到错误代码 400。似乎我不止一次使用相同的 strip 标记,这会产生错误。下面是我的代码。 Js: var handler = Stri
我有一个 Unicode 字符串,在开头和结尾有一些不间断的空格。使用 strip() 与 strip(string.whitespace) 时,我得到不同的结果。 >>> import string
我正在尝试制作许多“小倍数”图。 (旁白/背景)我有太多方面无法在单个图中显示,因此我需要手动将它们划分为单独的图。我希望我能通过想要的 ncol和 nrow至 facet_wrap它会根据我的需要制
我读了很多东西,发现这个配置有两个副作用: 使二进制大小更小 程序显示更好的调试崩溃 我正在为 iOS 构建程序,所以我希望我的二进制文件尽可能小。这个意思: 如果我设置 是 对于这两个配置,我的二进
https://plotly.com/python/strip-charts/ 中的第二个例子显示添加颜色(见下面的屏幕截图),但这也会自动在红色和蓝色点之间创建间距。 如何关闭它?如何确保我的点为分
如果二进制文件大小不是问题,使用 -g 而不是剥离要在性能关键环境中运行的二进制文件是否有任何缺点?我有很多磁盘空间,但二进制文件是 CPU 密集型的并且使用大量内存。二进制文件加载一次并存活数小时。
代码 library(ggplot2) library(dplyr) mydata = tribble( ~x, ~y, ~data, ~more, 0, 50, 'iris', 'this'
“复制期间的条调试符号”和“条链接的产品”选项之间有什么区别? 如果“复制期间的 strip 调试符号” =是,“ strip 链接产品” =否是什么意思? 是否可以将带有符号数据的应用程序上载到Ap
我使用以下代码使用 stripe.createToken 方法为银行帐户创建了一个 token 。 stripe.createToken('bank_account', { country: 'U
我正在尝试安装 imwheel,一个用于 linux 的鼠标配置客户端,当我在尝试安装该软件包时遇到此输出时,作为一个完全的菜鸟被难住了,因为我以前这样做过并且从未遇到过这个问题(我曾经使用 paca
使用 str.strip 可以通过两种方式在空白处进行分割。 。您可以发出不带参数的调用,str.strip(),默认使用空格分隔符,或者自己使用 str.strip(' ')< 显式提供参数。 但是
我正在构建一个蚊子docker镜像,当调用make install时遇到以下错误消息“安装:无法识别的选项:strip-program = strip”,请帮助,谢谢。 install -d /usr
我正在构建我想要生成发布版本的代码。但是,我也希望能够在 cores 崩溃时对其进行调试。 所以我读到可以使用带有调试符号的构建,然后生成运行 strip 的二进制文件的拷贝。然后,您可以使用剥离的二
我使用 TestFlight 进行远程崩溃报告。现在,我正在为此使用 Google Analytics。 TestFlight 建议禁用“复制期间剥离调试符号”和“剥离链接产品”。谷歌分析——没有。我
在将“复制过程中剥离调试符号”设置为"is"的情况下执行存档构建时,我收到警告“跳过复制阶段剥离,二进制代码已签名”。关于此问题,通常建议的线程解决方案是将“复制期间剥离调试符号”设置为“否”。当然可
在现代linux中,几乎所有对象都被剥离并分为两部分(两个文件)。第一个是可执行文件本身,第二个是调试符号,从原始ELF中删除。这样的文件是用 objcopy --only-keep-debug or
我定义了三 Stripe 计划(免费、普通、高级)。当用户想要升级(例如从普通用户到高级用户)时,用户应该使用高级计划获得新订阅。 到目前为止,这是我的代码: subscription = strip
我是一名优秀的程序员,十分优秀!