Роман Мирр, стандартно CRUD, но очень гибкая настройка меню, прав доступа, форм, списков, экшенов и тд. Ну и конечно bootstrap в виде лейаута что облегчает доработку
Не совсем понятна суть проблемы. Ваш REST будет отдавать что-то фронтенду или Моб приложению. Обычно отдают в JSON или XML и никакие view от Django не нужны
Делая сложные проекты без классов не обойтись - вам надо просто попробовать и начать с чего-то простого. А дальше придёт понимание чем этот подход лучше функционального. По Django в частности к сожалению русскоязычной информации не много, как отметили выше. Сам по себе в баковой конструкции Django ущербен как по дизайну так и структуре проекта. Но когда начинаешь копать глубже и думаешь как сделать то, как сделат это, то понимаешь что и структура проекта должна быть другой и куча библиотек левых нужно подключить и классы переписать и микстны сделать и получается такой нехилый конструктор.
sim3x, когда я работал с ActiveRecord в Yii то в нкоторых проектах бизнес логика была описана в модели и когда модель меняется только в 1 месте кода, тогда все вроде бы неплохо, но когда в проекте несколько разных flow то приходится уже придумывать костыли.
Да и выборка делается проще, когда она вынесена в сервис. Простой пример:
У меня есть таблица с операциями, есть поле post_date, booking_date = первое поле - дата создания записи, второе поле - дата когда операция была реально осуществлена.
Везде в коде я делаю выборку .filter(post_date=2018-01-01)
теперь я подумал что мне надо выбирать все записи не по этому полю, а по booking_date
Тогда мне надо пройтись по всему коду и заменить post_date= на booking_date=
А так, я вынес всю выборку в менеджер или сервис и меняю это только в 1 месте.
*service.find_by_date(....)
Второй пример:
Я хочу получить список писем, отправленных клиенту, у меня есть таблица, в которой я храню все письма. В коде я тоже везде использую выборку из базы напрямую. Но теперь я переключился на какой-нибудь сервис и хочу забирать список писем по API, но сам объект "письмо" не меняется, меняется только источник данных. Опять же меняю источник в сервисе, делаю гидрацию, маппинг, что-угодно, возращаю все тот же объект.
sudo npm run build - билдит js файл который ты должен подключить к документу. тогда приложение будет работать без npm
Имеется в виду, что таким образом я сделаю билд JS который прописан в нужном например index.html и все, дальше никакие NPM и Node не нужны для работы SPA ?
Я честно говоря только за бэкэнд отвечаю и devOps только под свои нужды ) Я вообще не понимаю для чего React Frontend запускать при помощи Node, это же простые HTML и JS которым сервер-то не нужен =)
А еще не понятно как отображаются средства "извне" т.е зачисление денег через платежную систему на счет сайта, а потом уже со счета сайта на счет клиента.
Денис Акимкин: subconcourse - это счета одного клиента я так понимаю? Я не совсем понимаю как реализуются именно счета. В моем представлении (не бухгалтерском) счет - это как счет в банке, условно говоря 1 запись в таблице.
Если я зачисляю деньги на свой счет - значит эти деньги минисуются со счета системы, плюсуются на счет клиента.
Если клиент платит за что-то, деньги минусуются со счета клиента, плюсуются на счет системы.
Но это не счета вроде "Средства будующих расходов" и так далее.
Максим Федоров: вот оно что, теперь немного начинаю понимать, что зря поддался мысли всегда и везде перед созданием\сохранением прогонять данные через модель extends Model
Максим Федоров: все верно, CRUD, тогда возникает вопрос при каких задачах имеет смысл делать такое разделение? Может я вообще задачу не верно понимаю и реализую ее не так как надо, может в данном случае для обычного CRUD стоит отказаться от этой модели и делать все через ActiveRecord
Максим Федоров: попробую поискать. Последний вопрос для закрепления чтобы я понимал туда ли копать. В общем Ваш пример кое что прояснил, но остался вопрос передачи $model в view где генерируется форма. Ведь если я делаю $model = (new QuestionForm())->find($id); то в $model уже объект Question и соответсвенно форма генерирует input с именами Question[active] Question[answer] и так далее. С большего такой код работает - за исключением вывода error которые, естесвенно в $model отсуствуют
$model = (new QuestionForm())->find($id);
$validation = new QuestionForm();
$validation->find( $id );
Максим Федоров: Этот совет я тоже слышу часто и понимаю, что это вероятно правильно но пока без примеров хорошего кода не понимаю как это работает, не видел best practics на эту тему.