【发布时间】:2020-08-05 13:39:12
【问题描述】:
我需要在我的CustomUserCreationForm Meta class 上添加一些验证约束。
我找不到添加它的位置和方法。我是否应该为此使用 RegexValidator?
例如,我希望 first_name 的最小长度为 2,最大长度仅为 30 个字母。
from django import forms
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from django.forms import ModelForm
from .models import *
import datetime
class CustomUserCreationForm(UserCreationForm):
birth_date = forms.DateField(
label='birthdate',
widget=forms.DateInput(
attrs={'placeholder':'jj/mm/aaaa'}
)
)
introduction = forms.CharField(
label='introduction',
min_length=20,
max_length=500,
widget = forms.Textarea(
attrs={
'placeholder': 'Hey, I\'m Wely.',
'cols':"40",
'rows':"5"
}
)
)
address1 = forms.CharField(
label='Address (1st line)',
min_length=2,
max_length=40,
widget = forms.TextInput(
attrs={'placeholder': '1st av. Lincoln'}
)
)
address2 = forms.CharField(
required=False,
label='Address (2nd line)',
min_length=0,
max_length=40,
widget = forms.TextInput(
attrs={'placeholder': 'Apt 3'}
)
)
registration_video = forms.CharField(
label='video',
widget = forms.FileInput(
attrs={'style': 'display:none'}
)
)
class Meta:
model = CustomUser
fields = ('first_name', 'last_name', 'email')
labels = {
'first_name': 'First name',
'last_name': 'Last Name',
'email': 'E-mail address'
}
widgets = {
'first_name': forms.TextInput(attrs = {'placeholder': 'Alicia'}),
'last_name': forms.TextInput(attrs = {'placeholder': 'Rodriguez'}),
'email': forms.EmailInput(attrs = {'placeholder': 'alicia@mail.com'}),
}
【问题讨论】:
标签: django-forms django-widget