Вопрос по дизайну CommentForm о пакете Django-comments

В собственном фреймворке комментариев Django, django-contrib-comments, он имеет следующие class определения:

  1. In models.py, class Comment (CommentAbstractModel): is defined.

  2. In forms.py, class CommentForm (CommentDetailsForm): is defined.

Q: поскольку comment framework - это пакет, управляемый comment-db-table, почему бы нам не использовать ModelForm для создания форм из моделей, вместо того, чтобы излишне создавать еще один класс CommentForm ?

Класс CommentDetailsForm наследуется от CommentSecurityForm, который определяет различные методы использования и выполняет пользовательскую валидацию. Эти формы также объявляют поля, которые не содержатся в модели Comment. Да, можно было использовать ModelForm вместо Form, но я думаю, что это решение не ошибочно, потому что этим формам нужно специфическое поведение, ModelForm сэкономил бы несколько строк кода (не много), но фактическая реализация более явная. Использование ModelForm с моделями не является обязательным.

Вернуться на верх