Django: очистка_data для специальных символов и знаков препинания
Я хочу проверить поле Name в моей форме.
Теперь у меня в forms:
def clean_name(self):
name = self.cleaned_data['name']
if re.search(r'\d', name):
raise ValidationError('The name must not have numbers')
if re.search(r'\s', name):
raise ValidationError('The name must not have spaces')
return name
Но я также хочу создать проверку для специальных символов и знаков препинания.
Я пробовал некоторые способы с [[:punct:]], но это возвращает мне ошибку, и я предполагаю, что это не работает с Python или нужен другой способ использования.
Есть ли какой-нибудь способ сделать это, мне нужна помощь.
Думаю, вы можете сделать это вручную, составив список специальных символов и знаков препинания, и выполнить итерацию для каждого символа поля name, пример здесь:
def clean_name(self):
name = self.cleaned_data['name']
special_puncs = ['!', '@', '#', '$', '%', '&', '*', '(', ')'] # you can also include more chars and puncs
for i in name:
if i in special_puncs:
raise ValidationError(
'Name cannot contains special chars and punctuations.')
if re.search(r'\d', name):
raise ValidationError('The name must not have numbers')
if re.search(r'\s', name):
raise ValidationError('The name must not have spaces')
return name