Задать вопрос
Sekira
@Sekira

Объединять ли код валидации формы добавления и редактирования, если поля почти одинаковые?

Допустим, есть гостевая книга, в которую могут писать и гости, и зарегистрированные пользователи. Зарегистрированные еще могут редактировать свои сообщения.

Так как поля текст, email и т.п., одни и те же, кроме имя гостя, то напрашивается объединение валидации всех полей и одного поля уже с проверкой по условию, зарегистрирован или нет. Затем также идет insert или update, опять же проверки те же самые практически.

Так вот, если всё это объединять и делать постоянные условия если это гость или нет, это вставка или редактирование, то получается какая-то каша, зато все проверки, в одном месте, например максимальная длина текста, или регулярка email, а если разделить отдельно, то получается три почти одинаковых кода. И если потом вздумается что-то поменять в валидации, то менять придется в трех местах и можно что-нибудь упустить.

Как лучше это сделать? Спасибо!
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
romy4
@romy4
Exception handler
объединять. это общая практика.
если что-то можно использовать два раза — это надо сделать.
Ответ написан
tema_sun
@tema_sun
Вам нужна одна форма ModelForm и пара вьюшек унаследованных от CreateView и UpdateView
Ответ написан
@M-ka
frontend присматривающийся к ror
Ну представляю что то типа:
закрытая область видимости содержащая список полей и правил, что с ними можно делать
поле1:
правило1: событие1:выполнить1, событие2: (выполнить2, выполнить3, выполнить4),
правило2: событие1:выполнить2, событие2: выполнить4
поле2:
правило1: событие2: выполнить7,
правило2: событие3:(выполнить5, выполнить3, выполнить4)

приватный метод установки событий полей с разделением по правилам, что с ними делать
приватный метод инита, вызывающий проставление события для полей
публичные методы на добавление информации через приватный
публичный метод на редактирование информации через приватный

Ну а после написания, подеребанить функционал на сборки и полную для нужных и только если они действительно нужные и не дать другим ее плучать...
Полет фантазий большой...
Хотя зачем выдумывать велосипед, когда его уже выдумали, собрали и используют... хз
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы