【发布时间】:2019-03-20 10:51:49
【问题描述】:
我只使用了开箱即用的 Django 表单 API。我现在正在尝试验证 django 模型表单上的表单字段数据 - update_profile。我的模型包含验证器,我应该在哪里(以及为什么)执行清理或保存以便为最终用户提供字段级消息传递?目前,我的错误字典是空的。
class CustomUser(AbstractBaseUser):
email = models.EmailField(_('email'), max_length=254, unique=True)
username = models.CharField(_('username'),max_length=15, unique=True,
validators=[RegexValidator('^[_a-z0-9]+$', message= '15 characters max. Username must be a-z(lowercase), 0-9, can contain underscore', code='invalid_username')])
about_me = models.CharField(_('about me'),max_length=140)
avatar = models.ImageField(upload_to='avatars/', blank=True, null=True)
first_name = models.CharField(_('first name'), max_length=30, blank=True)
last_name = models.CharField(_('last name'), max_length=50, blank=True)
phone_regex = RegexValidator(regex='^\+?1?\d{9,15}$', message='Phone number must be between 9 and 15 digits')
phone_number = models.CharField(_('phone_number'),max_length=15, blank=True,
validators=[phone_regex])
is_active = models.BooleanField(_('active'), default=False)
is_staff = models.BooleanField(_('staff'), default=False)
views.py
def update_profile(request):
user=request.user
if user.is_authenticated == True:
if request.method == 'POST':
form = CustomUserChangeForm(request.POST, instance=user)
if form.is_valid():
form.save()
messages.success(request, 'Your profile was successfully updated.')
return redirect('update profile')
else:
messages.error(request, "Please correct the error below.")
form = CustomUserChangeForm(instance=user)
return render(request, 'profile.html', {'form': form})
forms.py
class CustomUserChangeForm(forms.ModelForm):
class Meta:
model = CustomUser
fields = ('email', 'first_name', 'last_name', 'about_me','phone_number')
【问题讨论】:
-
请修复视图中的缩进。
-
谢谢 - 格式固定
标签: django django-forms