Size: a a a

Django [ru] #STAY HOME

2020 October 08

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nire
А если у тебя модели в одном файле, то так неудобно))
ага, в одном
Но, ИМХО: "сразу делай нормально - потом меньше рефакторить"
А то можно так на говнокодить, что двух дней не хватит)
источник

N

Nire in Django [ru] #STAY HOME
Например при создании юзера создать ему различные профили и корзину
источник

N

Nire in Django [ru] #STAY HOME
Artem Gubatenko
ага, в одном
Но, ИМХО: "сразу делай нормально - потом меньше рефакторить"
А то можно так на говнокодить, что двух дней не хватит)
Поэтому каждую неделю день на ресерч
источник

N

Nire in Django [ru] #STAY HOME
У нас тдд ещё извращённый, пишем тест, делаем работу (так неделю) и в один день рефакторим, вместо рефакторинга после каждой задачи

Так чтобы всю композицию легче понять, в один день укладываем

Хотя если модуль быстро полностью сделали, сразу рефакторим

Обычно 6дневная рабочая неделя, в которой в субботу мы лежим на диване и смотрим код со смузи) занимает пару часов
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nire
Поэтому каждую неделю день на ресерч
Не все работают даже в таких условиях, мы перестали писать что-либо в сигналах. Даже с расчетом на дальнейший рефакторинг.
источник

N

Nire in Django [ru] #STAY HOME
Artem Gubatenko
Не все работают даже в таких условиях, мы перестали писать что-либо в сигналах. Даже с расчетом на дальнейший рефакторинг.
Я рефакторю сигналы либо в очередь задач, либо в микросервисы. А в совместных инитах разных моделей я создаю менеджеры
источник

N

Nire in Django [ru] #STAY HOME
Мне кажется, но придумать правильное взаимодействие сложнее, чем закодить. Поэтому сигналы хороши для "затычек"

Например пока не решил как целари таска выглядеть будет и тратить время сейчас не выгодно
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nire
Мне кажется, но придумать правильное взаимодействие сложнее, чем закодить. Поэтому сигналы хороши для "затычек"

Например пока не решил как целари таска выглядеть будет и тратить время сейчас не выгодно
почему бы не писать этот код в других местах? - save(),  рядом с myobj.save()
Ведь сигналы выполяняются также последовательно, как и остальной код, а не как Celery таски
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Но зато код будет более понятен
источник

DT

Denis Taranov in Django [ru] #STAY HOME
Nire
Сигналы - есть таргет модель и сюрс модель. Если вторая меняется идёт влияние на первую. Если во вьюхи такой механизм невозможно реализовать, то в сигналы пихать вполне правильно, имхо
По мне, первым решением, по возможности, тут триггер в бд
источник

N

Nire in Django [ru] #STAY HOME
Artem Gubatenko
почему бы не писать этот код в других местах? - save(),  рядом с myobj.save()
Ведь сигналы выполяняются также последовательно, как и остальной код, а не как Celery таски
Потому что в сейве одной модели пихать сейв другой модели, имхо конечно, не явно
источник

N

Nire in Django [ru] #STAY HOME
Denis Taranov
По мне, первым решением, по возможности, тут триггер в бд
Триггер в бд тоже хороший вариант, но туда логику просто не запихать со сложной валидацией
источник

DT

Denis Taranov in Django [ru] #STAY HOME
Да, как я и написал, по возможности
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Denis Taranov
По мне, первым решением, по возможности, тут триггер в бд
где-то слышал, что чуть не нае*нули часть логики, из-за того, что забыли про триггеры, при манипуляциях со структурой своей БД
источник

N

Nire in Django [ru] #STAY HOME
Artem Gubatenko
где-то слышал, что чуть не нае*нули часть логики, из-за того, что забыли про триггеры, при манипуляциях со структурой своей БД
Поэтому надо приложение на домены дробить и делать их самодостаточными
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Nire
Потому что в сейве одной модели пихать сейв другой модели, имхо конечно, не явно
если вторая модель - связанная, то почему нет: self.fk_field.save()?
можно все делать не в save(), а в отдельном слое. Не трудно же создать модуль для сложной логики.
источник

LO

Loki Odinson in Django [ru] #STAY HOME
Alex Kalinin
а вообще идея интересная. Осталось только найти проект который не жалко.
там еще мне кажется не придется записей фильтровать в джанго по юзеру, а бд сам выдасть только те данные которые он может видеть
источник

S

Shodmon in Django [ru] #STAY HOME
Антон Кочневский
А можно ли как то передать через HttpResponse ссылку?
Что это значит? Как это представляете?
источник

АК

Антон Кочневский... in Django [ru] #STAY HOME
Shodmon
Что это значит? Как это представляете?
Короче я думал можно как то генерировать страницу на которой будет написано что нет прав доступа и рядом ссылку на главную к примеру.
Но я реализовал, просто сделав новую страницу специально для этих целей.
источник

N

Nire in Django [ru] #STAY HOME
Artem Gubatenko
если вторая модель - связанная, то почему нет: self.fk_field.save()?
можно все делать не в save(), а в отдельном слое. Не трудно же создать модуль для сложной логики.
Потому что это не явно. Я ожидаю  вызов сейва этой модели в файле ЭТОЙ модели. А не в сейве ДРУГОЙ модели. Поэтому для меня сигналы удобнее
источник