Size: a a a

Django [ru] #STAY HOME

2019 September 06

T

Tim in Django [ru] #STAY HOME
Dan Tyan
на сколько критично задержка в уведомлении ?
не критично, в принципе. если в течение 5-10 секунд, то норм
источник

T

Tim in Django [ru] #STAY HOME
Dan Tyan
нет просто celery
ладно, спасибо. Почитаю по celery, надеюсь, там несложно))
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tim
ладно, спасибо. Почитаю по celery, надеюсь, там несложно))
там единственное надо определится где вызывать таск
я бы таки остановился на таске
источник

T

Tim in Django [ru] #STAY HOME
Dan Tyan
там единственное надо определится где вызывать таск
я бы таки остановился на таске
https://github.com/mback2k/django-celery-model
если вот эту заюзать и засунуть вызов таска в post_save он отработает?
типа
def save():
   super().save()
   self.apply_async(task)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
переопределять save() в моделях - это немного говноедство 😊
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Tim
https://github.com/mback2k/django-celery-model
если вот эту заюзать и засунуть вызов таска в post_save он отработает?
типа
def save():
   super().save()
   self.apply_async(task)
не пользовал не знаю
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
(как минимум, тебя за это будут ругать те, кто будет работать с кодом потом, переводя проект с Django на что-нибудь другое)
источник

T

Tim in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
переопределять save() в моделях - это немного говноедство 😊
почему? а как иначе, например, если что-то нужно сделать при изменении или добавлении инстанса ?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
бизнес логику лучше отделять от моделей и размещать отдельно
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
например, предлагается в services.py (и запретить любые обращения к ORM для нового кода за пределами этого модуля)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
это позволит потом заменить Django/models.py на что-то другое более простым образом
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
чем меньше вы привязываетесь к Django, делая новый код, тем лучше
источник

T

Tim in Django [ru] #STAY HOME
а как привязать этот код, в services, к админке?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
этот подход оптимален с точки зрения "а что если завтра мы заменим Django на что-нибудь другое?"
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
суть в том, что программист не должен создавать преград для возможного перехода на другой тип хранилища или для замены фреймворка
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
вот эти переопределения save() или использование сигналов - это привязка к Django, если можно без неё - лучше без неё
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
что будет если хранилище будет заменено на какое-нибудь NoSQL? где там эти save()? их там не будет
источник

T

Tim in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
вот эти переопределения save() или использование сигналов - это привязка к Django, если можно без неё - лучше без неё
Возьму на заметку. Но пока иначе не умею, с джангой 2 месяца.
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
ну, то есть вместо того чтобы подправить способ сохранения данных (в сервисах) придётся править ещё и связанные с этим вещи, то есть лучше писать код так, чтобы в будущем было бы проще его поменять
источник