forms.py 885 B

12345678910111213141516171819202122232425262728293031
  1. """Форма комментариев."""
  2. from django.forms import ModelForm
  3. from django.core.exceptions import ValidationError
  4. from .models import Comment
  5. BAD_WORDS = (
  6. 'редиска',
  7. 'негодяй',
  8. # Дополните список на своё усмотрение.
  9. )
  10. WARNING = 'Не ругайтесь!'
  11. class CommentForm(ModelForm):
  12. """Форма комментариев."""
  13. class Meta:
  14. """Меаинформация к форме с комментарием."""
  15. model = Comment
  16. fields = ('text',)
  17. def clean_text(self):
  18. """Не позволяем ругаться в комментариях."""
  19. text = self.cleaned_data['text']
  20. lowered_text = text.lower()
  21. for word in BAD_WORDS:
  22. if word in lowered_text:
  23. raise ValidationError(WARNING)
  24. return text