нет, не очевидный. я на джанге на ро сиквеле сделаю так что работать оно будет на 40% быстрее и сожрет на 20% меньше памяти на каждый запрос, разработка займет в 2 раза меньше времени, новый человек разберется за 15 минут вместо 2х часов. (для *конкретного* кейса)
гдето изначально речь шла про количество запросов? вроде говорили про возможность выразить тот или иной селект через 2 разных орм.
ну и ненадо гонять коня по вакууму. если хочется конструктива, берем конкретный кейс. типа вот модели, вот такой сценарий. и тут можно думать и обсуждать как это сделать на джданге как на алхимии. зададим критерии крутости. и тогда можно будет говорить что говно а что нет.
ну и само по себе сравнение чуть странновато, джанго она ближе к DDD и его принципы старается использовать, а алхимия идет от структуры базы.
вы эта, критерии сразу озвучивайте. а то получается:
— джанговскийо орм гавно, вот так он не может…
— да, гавно конечно, но может…
— неее, так не считается. это на ipython не сработает.
давайте сюда еще мобильные дивайся притянем, загоним сразу несколько бд в проект и начнем сравнивать.
Повторюсь. ни у кого не вызывало сомнений, что алхимия более функциональна, был интересен конкретный пример, с чем автор столкнулся. автор сначала натурально быковал (ну потом он конечно назвал это тема стайл экспресиия) потом привел мутную алхимеческую кверю, без описания моделей, которая использует внутри себя другие врядли менее мутные квери и ходит довольный. рассказывает какой он весь в белом втихую глумится над «экспертами».
Нормальный ответ был бы. бизнес кей такойто- надо сделать вот такуюто выборку, по таким то критериям, обязательно вот в такой временной промежуток, ленивость нежелательна, должно работать на таких, то бд, потому что продакшен одна бд, для тестов юзаем другую. не надо кверей. просто описание кейса.
всё. граждане бы посмотрели, поцокали языком, примерили бы на свои проекты, поломали бы голову, а можно ли как то извратится и забабахать это на стандартной джанге (просто голову размять) и было бы интересно и полезно.
а так, получилась помойка с минимумом конструктива. причем автор считает, что он душка-зайка, никому не хамит, а это его «эксперты» одолевают :)
примера не будет. я не готов либо переписвать ваш, либо придумывать какото свой который достоточно точно отразит проблему, чтобы вы не сказали потмо что эксперты опять чтото не поняли и все упростили.
сама возможность реализации в чем то вызывает сомнения?
вроде никто изначально не спорил чтонельзя можно. на стековерфлоу эта тема обсуждалась года 2 назад, съели и переварили.
интересна была именно мотивация — зачем.
При очевидных недостатках джанги правило парето она соблюдает, если вы попали в оставшиеся 20, то, вероятно, джанга не для вас.
Вы в начале заметили, что джангу выбрали до вас, ну вот окружающим ( в частности мне) было интерсно в чем проблема и критерии ее оценки.
Вместо того чтоб просто написать было вот так, был геморой, переключили на алхимию и сделали вот так и получилось круто. вы, извините, впали в неадекват и начали рассказывтаь про то какие хабраэксперты плохие.
Ты б определился уже, а то в одном месте ты говоришь, что статья про то что можно орм поменять, а не про то что джанговский говно, в другом уже соглашаешься что стратья и про говно тоже. и главное везде хабраэксперты.
перефразируя известную фразу — что хорошо с «хабраэкспертом», так это то, что «хабраэксперт» это всегда не ты.
Уважаемый автор, а теперь попробуйте откинуть ваш апломб, и сказать как вот тут соблюдается DRY и как сильно вот это отличается от голой сиквельной квери.
Автор: Чуваки, смотрите к джанго можно прикрутить SQLA!!! потому что джанговский орм на многое не способен! и теперь вы можете выбирать мембершим вот так: User.sa.query.join(User.sa.user_groups).join(User.sa.user_groups.property.mapper.class_.group) и это клева чуваки, истину говорю вам.
Чуваки: Ну ок, джанговский говно. но на нем мы мембершип выбираем вот так Group.members. Есть реальный пример когда SQLA будет полезнее?
Автор: Да вы «эксперты» статью почитайте! там про то что можно в джанго орм заменить на SQLA! а не про то зачем это. просто можно и все. и это круто!
Чуваки: да понятно, что можно. а зачем? ну реально приведи пример где джанговский будет хуже по какому то критерию.
Автор: Достали «экперты»! сравнивайте сами, я просто написал что можно. Нужны примерны — сами ищите. когда дорастете и поумнеете сами все поймете!
я так понимаю примеров подтверждающих ваши утверждения можно не ждать :)
особенно в сопоставлении вместе с SQLA, ну как там аналогичный пример решается с соблюдением DRY.
похоже вы пропустили прочесть мой комметарий. было интересно зачем прикручивать SQLA. на реальном примере. ибо приведенный вами пример очень сильно притянут за уши.
кхм, извините, нимб не жмет?
вот это я понимаю — критерии.
на всякий случай: это ирония.
ну и ненадо гонять коня по вакууму. если хочется конструктива, берем конкретный кейс. типа вот модели, вот такой сценарий. и тут можно думать и обсуждать как это сделать на джданге как на алхимии. зададим критерии крутости. и тогда можно будет говорить что говно а что нет.
ну и само по себе сравнение чуть странновато, джанго она ближе к DDD и его принципы старается использовать, а алхимия идет от структуры базы.
— джанговскийо орм гавно, вот так он не может…
— да, гавно конечно, но может…
— неее, так не считается. это на ipython не сработает.
давайте сюда еще мобильные дивайся притянем, загоним сразу несколько бд в проект и начнем сравнивать.
Повторюсь. ни у кого не вызывало сомнений, что алхимия более функциональна, был интересен конкретный пример, с чем автор столкнулся. автор сначала натурально быковал (ну потом он конечно назвал это тема стайл экспресиия) потом привел мутную алхимеческую кверю, без описания моделей, которая использует внутри себя другие врядли менее мутные квери и ходит довольный. рассказывает какой он весь в белом втихую глумится над «экспертами».
Нормальный ответ был бы. бизнес кей такойто- надо сделать вот такуюто выборку, по таким то критериям, обязательно вот в такой временной промежуток, ленивость нежелательна, должно работать на таких, то бд, потому что продакшен одна бд, для тестов юзаем другую. не надо кверей. просто описание кейса.
всё. граждане бы посмотрели, поцокали языком, примерили бы на свои проекты, поломали бы голову, а можно ли как то извратится и забабахать это на стандартной джанге (просто голову размять) и было бы интересно и полезно.
а так, получилась помойка с минимумом конструктива. причем автор считает, что он душка-зайка, никому не хамит, а это его «эксперты» одолевают :)
сама возможность реализации в чем то вызывает сомнения?
>И разве ему можно уже указать «этого тащи, этого не тащи»?
таки да.
>Q(order__event__idslines__idsbatches__status = RECEIVED). Я уже умудрился забыть, обратный джойн в джанге работает?
все равно это проще чем та кверя, что привели вы. обратный джойн работает, да
интересна была именно мотивация — зачем.
При очевидных недостатках джанги правило парето она соблюдает, если вы попали в оставшиеся 20, то, вероятно, джанга не для вас.
Вы в начале заметили, что джангу выбрали до вас, ну вот окружающим ( в частности мне) было интерсно в чем проблема и критерии ее оценки.
Вместо того чтоб просто написать было вот так, был геморой, переключили на алхимию и сделали вот так и получилось круто. вы, извините, впали в неадекват и начали рассказывтаь про то какие хабраэксперты плохие.
таково мое восприятие.
перефразируя известную фразу — что хорошо с «хабраэкспертом», так это то, что «хабраэксперт» это всегда не ты.
qs = SettlementLine.filter(batch=None).filter(settle_after < datetime.now).filter(SettlementLine.source=SettlementLine.Source.ECOMMERCE))
result = qs.get( Q(order_domain_id=Rout.domain_id) | Q(idsbatch.status = idsbatch.state.RECEIVED) )
не уверен насчет последнего Q объекта, просто не понял логику связи. но как то так.
Автор: Чуваки, смотрите к джанго можно прикрутить SQLA!!! потому что джанговский орм на многое не способен! и теперь вы можете выбирать мембершим вот так: User.sa.query.join(User.sa.user_groups).join(User.sa.user_groups.property.mapper.class_.group) и это клева чуваки, истину говорю вам.
Чуваки: Ну ок, джанговский говно. но на нем мы мембершип выбираем вот так Group.members. Есть реальный пример когда SQLA будет полезнее?
Автор: Да вы «эксперты» статью почитайте! там про то что можно в джанго орм заменить на SQLA! а не про то зачем это. просто можно и все. и это круто!
Чуваки: да понятно, что можно. а зачем? ну реально приведи пример где джанговский будет хуже по какому то критерию.
Автор: Достали «экперты»! сравнивайте сами, я просто написал что можно. Нужны примерны — сами ищите. когда дорастете и поумнеете сами все поймете!
Чуваки: ок.
Пример который вы привели в статье уже был опровергнут. на большее мирового имени не хватает?
особенно в сопоставлении вместе с SQLA, ну как там аналогичный пример решается с соблюдением DRY.