Форум сайта python.su
24
ZAN
Если делается сложный запрос, то из-за того, что параметр передается, как keyword, его нельзя использовать заново (к примеру, если нужно сортировать по тому же полю).
>>> field = "price" >>> Product.objects.filter(**{field + "__gt": 3000}).order_by(field)
Офлайн
10
aybДело не во мнении, а в форме его подачи. Ваше хамское высказывание обесценивает не только труд сотен разработчиков Джанги, но и косвенно мой при создании библиотеки для, как вы выразились, говна.
Нет, простите, это форум и я могу высказывать свое мнение. Мое мнение отличается от Вашего ? Ну ничего страшного, так бывает.
aybНу простите, это форум и я могу выбирать кому отвечать, а кому нет.
При этом отказывается ответить на вполне нормальные вопросы.
Офлайн
10
aybOh RLY? Да пройдите уже по ссылке, я про все это писал.
Product.objects.filter(**{field + “__gt”: 3000}).order_by(field)
Офлайн
568
Скажу как джангист начинавший с джанго 1.2.
Я ни разу не имел геморроя с тем, что ошибался в количестве подчеркиваний.
Ты все равно будешь использовать этот синтаксис в запросах values, values_list, select_related, only и пр.
У меня куча кода основанного на именах полей формы аля “price__gt” или “name__icontains” из которых я формирую запросы на выборку.
Пайшарм - единственная вменяемая ИДЕ умеет подсказывать параметры джанговских запросов с подчеркиваниями.
Никакой гибкости ты от своих галлюцинаций не получаешь, ну попробуй хотя бы передать параметры в запрос в виде словаря.
Вообще, это идиотизм, никто не ждет в параметрах функции каких-то операций, нормальня ситуация, ПЕРЕДАЕМ АРГУМЕНТ ПО ИМЕНИ
call_function(a=1)
call_function(a>1)
Офлайн
24
ZAN
Дело не во мнении, а в форме его подачи.
ZAN
Ваше хамское высказывание обесценивает не только труд сотен разработчиков Джанги, но и косвенно мой при создании библиотеки для, как вы выразились, говна.
ZAN
Oh RLY? Да пройдите уже по ссылке, я про все это писал.
Отредактировано ayb (Март 17, 2016 21:21:33)
Офлайн
10
FishHook
Еще один - мы на брудершафт не пили, не нужно мне тыкать. Однако, как тут все поменялось. На сим считаю тему закрытой.
JOHN_16 сделайте плз одолжение - выпилите тему нахрен.
Офлайн
24
ZAN
сделайте плз одолжение - выпилите тему нахрен.
Офлайн
221
ZAN
я внимательно читаю топик, пока для этого разумных причин не вижу. Пока что я вижу что вы просто обиделись что не нашли поддержки конкретно вот здесь и сейчас. Ничего страшного не произошло, это естественный путь опенсорс продуктов - большинство из них максимум находит применение в крайне ограниченном круге. Не стоит огорчаться из за этого.
Дело в том что это довольно тяжелый вопрос -менять в целом концепцию работы фреймворка, пускай даже в достаточной степени очевидности. Представим что ваша это библиотека реальный cool и полный profit, но убедить в этом сообщество, да еще те кто на django делает opensource продукты которыми пользуются другие программисты? А сотни и тысячи “батареек” для Django?
Я не сильно погружен в вопрос, могу ошибаться, но в любом случае продвижение подобных решений это крайне сложный процесс. Вы , вероятно, к этому не были готовы.
Попробуйте представить ваш проект в англоязычной сфере, думаю что критических замечаний получите еще больше. Такова жизнь.
Офлайн
10
JOHN_16
Вовсе нет, я уже получил вполне положительные отзывы от разработчиков джанги. Более того, мне показали наброски подобных подходов, которые уже делались ранее, так что, я думаю, похожий функционал рано или поздно будет поддерживаться из коробки. На данный момент главное для этого препятствие - легаси в SQLCompler-ре, который слишком завязан на кейворды, разрешение которых (field vs lookup keyword) происходит в самом конце. Да, в общем, я это уже пытался описать выше.
Так что на форуме я запостил, чтобы рассказать про готовый инструмент, хотя и в урезаном виде. Что меня реально задело - так это откровенный троллинг, ну или хамство, мой детектор не распознает. И если ayb просто школьник, то FishHook вроде бы как по-старше и даже здесь модератор.
Поэтому прокоментирую только его.
Скажу как джангист начинавший с джанго 1.2.Код нужно не только писать, но и читать, при чем последнее качество, на мой взгляд, еще более важное. С читабельностью становится не очень, если в именах полей тоже есть подчеркивания. Что касается слайсов - тут вообще без комментарий.
Я ни разу не имел геморроя с тем, что ошибался в количестве подчеркиваний.
…
Пайшарм - единственная вменяемая ИДЕ умеет подсказывать параметры джанговских запросов с подчеркиваниями.
Ты все равно будешь использовать этот синтаксис в запросах values, values_list, select_related, only и пр.Документацию не читаем, но критикуем - для этого есть специальный вызов get_path() чтобы сгенерить строку. Однако, order_by умеет принимать и F-объект, который можно привести к одному интерфейсу с Expressions (на уровне джанги, естесственно), тогда дергать get_path() не будет никакой необходимости.
Вообще, это идиотизм, никто не ждет в параметрах функции каких-то операций, нормальня ситуация, ПЕРЕДАЕМ АРГУМЕНТ ПО ИМЕНИНе идиотизм - здесь передается не keyword аргумент, а результат сравнения. Именно такой подход активно используется в SQLAlchemy, которую постоянно ставят в пример джанговской орм. http://docs.sqlalchemy.org/en/latest/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__eq__ Эти люди тоже идиоты?
Ерунда, чушь и бред.Баян, табуретка и утюг
Офлайн
568
ZAN
ZANВышел бы конструктивный диалог, если бы вы решили сделать что-нибудь полезное. В джанге куча узких мест, которые можно улучшать и развивать. Вы сделали то, что никому не нужно, нет потребности. Задача, безусловно, интересная, и вы молодец, потому что вы её решили. Но в практическом плане ценности решение не имеет. Если бы вы задались вопросом, как в этом ОРМе реализовать HAVING или джоин с несвязанной таблицей, вы бы получили задачу с практическим смыслом. Ваши теоретические размышления о том, как было бы лучше интересны, но вы бы спросили у практикующих джангистов хотя бы на этом форуме, надо кому-то вот такое-то изобретение, и вам бы сказали, что никто без него не страдает.
диалог здесь не особо конструктивный вышел
Офлайн