1

Тема: Бізнес-логіка в django

Всім привіт. Давно мучить одне питання, і відповідей вже нашукався, вирішив все ж написати на форум.
Суть:
Є в мене форми написання постів на сайт. Форми юзаю не ті що в forms.py, а довільні. Так ось, сама проблема в тому, що я не знаю куди правильно повертати з них дані: у в'юшку, у той же forms.py, напряму в модель чи можливо створити якийсь файлик в якому буде вся логіка? З тою формою ще проходить велика купка маніпуляцій перед тим як вона потрапляє в БД.
Та і не тільки форми це стосується. Де загалом краще реалізовувати логіку роботи сайту? Можливо якісь дизайн-патерни порадите?

Про 3D друк та програмування українською: http://freakspace.xyz

2

Re: Бізнес-логіка в django

валідацію даних проводити максимально у формах.
подальші маніпуляції помістити в
модель, або винести в окремий  "utils.py", "services.py" тощо
view залишаємо максимально тонким.

Подякували: navchalkin1

3

Re: Бізнес-логіка в django

валідацію даних проводити максимально у формах.

Валідацію у формах на стороні клієнта слід дублювати такою ж валідацією на стороні сервера (якщо тільки нашою метою не є створення легкозламуваного сайту).

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: navchalkin1

4

Re: Бізнес-логіка в django

P.Y. написав:

валідацію даних проводити максимально у формах.

Валідацію у формах на стороні клієнта слід дублювати такою ж валідацією на стороні сервера (якщо тільки нашою метою не є створення легкозламуваного сайту).

ну так, валідація полів кожного зокрема і як набору даних в цілому - одне  з завдань форми.
http://www.effectivedjango.com/forms.ht … g-the-form

Подякували: navchalkin1

5

Re: Бізнес-логіка в django

Про валідацію вже розповіли, молодці. А далі - все як завжди, головне здоровий глузд. Вьюшка по суті відповідає за те, щоб повернути дані так, щоб на сторінці все було гарно. Відповідно, щось складніше варто виносити далі. Важко сказати однозначно, таке рішення, щоб підійшло всім.

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/
Подякували: navchalkin1