IdHub/idhub_auth/forms.py

38 lines
1.2 KiB
Python
Raw Normal View History

2023-11-13 17:09:37 +00:00
import re
from django import forms
from django.utils.translation import gettext_lazy as _
from idhub_auth.models import User
class ProfileForm(forms.ModelForm):
2023-12-14 16:15:22 +00:00
first_name = forms.CharField(label=_("First name"), required=True)
last_name = forms.CharField(label=_("Last name"), required=True)
2023-11-13 17:09:37 +00:00
class Meta:
model = User
fields = ['first_name', 'last_name', 'email']
2023-12-14 16:15:22 +00:00
labels = {
'email': _('Email address'),
}
2023-11-13 17:09:37 +00:00
def clean_first_name(self):
first_name = super().clean()['first_name']
2023-11-22 13:05:24 +00:00
match = r'^[a-zA-ZäöüßÄÖÜáéíóúàèìòùÀÈÌÒÙÁÉÍÓÚßñÑçÇ\s\'-]+'
2023-12-14 16:15:22 +00:00
if not re.fullmatch(match, first_name):
2023-11-13 17:09:37 +00:00
txt = _("The string must contain only characters and spaces")
raise forms.ValidationError(txt)
return first_name
def clean_last_name(self):
last_name = super().clean()['last_name']
2023-11-22 13:05:24 +00:00
match = r'^[a-zA-ZäöüßÄÖÜáéíóúàèìòùÀÈÌÒÙÁÉÍÓÚßñÑçÇ\s\'-]+'
2023-12-14 16:15:22 +00:00
if not re.fullmatch(match, last_name):
2023-11-13 17:09:37 +00:00
txt = _("The string must contain only characters and spaces")
raise forms.ValidationError(txt)
return last_name