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