
Ruslan
03.04.2017
06:25:45
камрады, надо реализовать возможность для админа "влезать" в шкуру любого пользователя, очень удобно просматривать, что там за проблема на продакшене

Denis
03.04.2017
06:26:32
https://github.com/arteria/django-hijack

Ruslan
03.04.2017
06:26:49
как лучше это сделать?

Google

Denis
03.04.2017
06:28:12

amureki
03.04.2017
06:30:31

Илья
03.04.2017
07:21:10
А вообще у меня в проекте еще два велосипеда своих есть. django-memoize и query builder. Первый мне как-то стремно использовать, т.к. у него там depricated warning вылазит. А второй не поддерживает некоторых конструкций sql которые мне нужны (были нужны).


amureki
03.04.2017
07:58:56
>т.к. у него там depricated warning вылазит
форкаем, фиксим, делаем ПР и все довольны

Ruslan
03.04.2017
08:09:40

Илья
03.04.2017
08:11:01

amureki
03.04.2017
08:11:34
?

Илья
03.04.2017
08:12:52
ну тяжелая не тяжелая, может не правильно выразил мысль. Просто меня бесит неявное повдение ORM например и шаблонизатора. В случае шаблонизатора то это сейчас решено заменой на jinja2, а в случае ORM тут уже ничего не поделаешь. Если притащить другой ORM, то смысла джангу юзать уже не будет.
Ну и плюс лениво для проекта из 300 строек заморачиваться со структурой настройкми и т.п. Микрофреймворки в примерах все в одном файле запускаются. Это удобно для старта проекта, хотя в итоге все равно получается примерно такая же структура. Хотя справедливости ради отмечу, что джангу тоже можно запустить в одном файле,, но тут надо сделать чуть больше телодвижений, чем скопировать пример из туториала.

Google

Senpos
03.04.2017
08:22:27
А в чем особенность этой Jinja2 над джанговским шаблонизатором?
Доброе утро

amureki
03.04.2017
08:23:11
Ну и плюс лениво для проекта из 300 строек заморачиваться со структурой настройкми и т.п. Микрофреймворки в примерах все в одном файле запускаются. Это удобно для старта проекта, хотя в итоге все равно получается примерно такая же структура. Хотя справедливости ради отмечу, что джангу тоже можно запустить в одном файле,, но тут надо сделать чуть больше телодвижений, чем скопировать пример из туториала.
это вопрос подготовки
когда знаешь и умеешь в джангу, конфиг дело 5 минут, плюс ты это отработал на куче проектов и знаешь возможные проблемы на любом уровне
ну и к слову, был на гитхабе реп с джангой, работающей с одного файла - изврат, но пруф :)
https://github.com/readevalprint/mini-django
https://github.com/simonw/djng

Илья
03.04.2017
08:24:55
По ссылкке, это не то это дополнительная зависимость.
Вот пример http://ishalyapin.ru/django-%D0%B2-%D0%BE%D0%B4%D0%BD%D0%BE%D0%BC-%D1%84%D0%B0%D0%B9%D0%BB%D0%B5/

amureki
03.04.2017
08:26:35
по первой ссылке то
и по вашей тоже то

Илья
03.04.2017
08:26:49
Ну понятно что 5 минут. А на микрофреймворке это 5 секунд.
разница есть

amureki
03.04.2017
08:27:09
ну да, один раз потратить пять минут или пять секунд
у меня есть зоопарк из трех джанго бекендов, всей команде легче работать в одном фреймворке, чем поддерживать разные

Илья
03.04.2017
08:27:48
для большого проекта это не существенно, я же говорю про мелкие проекты

amureki
03.04.2017
08:27:53
зато ПЯТЬ МИНУТ потратили

Aleksey
03.04.2017
08:28:03

Илья
03.04.2017
08:29:57
ну например есть у тебя список заказов и список юзеров. Ты пишешь Order.objects.all() не предполагая выводить юзера. А потом верстальщик в шаблоне в цикле пишет {{ order.user.name }} и внезапоно у тебя добавилось N sql запросов на странице.

amureki
03.04.2017
08:30:49
неявное поведение верстальщика

Ruslan
03.04.2017
08:31:02
ну, отдавай только нужные поля

Илья
03.04.2017
08:31:24
На мой взгляд тут должно вылетать исключение, если не было select_related

Google

Михаил
03.04.2017
08:32:43
Это уже вопрос соглашений
Но по документации это совершенно предсказуемое поведение

Илья
03.04.2017
08:36:05
Ну это логика пхп, что задокументированная бага является фичей. Мы же на питоне пишем, и тут идеалогия что явное лучше не явного. На практие постоянно возникает ситуация, что ты написал вьюху, у тебя 20 запросов на странице. Проходит 2 месяца и у тебя уже 300 запросов на той же самой странице, и разобразться откуда отни там взялись занимает время. Если бы были исключения, то такой проблемы бы не возникало в принципе.

amureki
03.04.2017
08:36:59

Михаил
03.04.2017
08:41:08
При желании, можно отдать в шаблон не queryset, а голые данные. Тогда уж верстальщик ТОЧНО ничего не поломает

Aleksey
03.04.2017
08:43:08

Илья
03.04.2017
08:43:38
Шаблоны пишут верстальщики они ничгео не знают про select_related и даже если знаю не видят код вьюхи.
values не удобно, т.к. нет методов моделей и с ними не работает select_related
Неявность заключается в том, что ты обращаешься в шаблоне к атрибуту, а у тебя выполняется SQL запрос.

Михаил
03.04.2017
08:45:02
А зачем верстальщикам методы моделей?
Не к атрибуту, а к связанной модели

Aleksey
03.04.2017
08:45:19
ага, что-то тут не сходится
верстальщики не знают, что во views, но знают, что в models, если в темплейтах могут обращаться к этим вещам
не лучше вывод данных оставить на программиста?

Илья
03.04.2017
08:46:45

Михаил
03.04.2017
08:47:53
Который сам по себе модель, а не простой тип

Илья
03.04.2017
08:49:20
Я не монимаю, вы хотите доказать что верстальщик должен знать джангу чтоли? Тогда нафига ему работать верстальщиком, если он может работать программистом и получать больше.

amureki
03.04.2017
08:49:20

Aleksey
03.04.2017
08:49:37

Google

Илья
03.04.2017
08:50:06

amureki
03.04.2017
08:50:25
и, кстати, это не костыль, относится в целом
верстак может такого понаделать и без трогания связанных моделей объекта
везде не выправишь на базовом уровне

Илья
03.04.2017
08:52:30
Например?

Михаил
03.04.2017
08:52:47
А должен ли верстальщик знать циклы и условия, например? Это ведь тоже к его работе не относится, по сути, но в шаблонизации используется

Aleksey
03.04.2017
08:53:11
https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.only
не подойдет?

Denis
03.04.2017
08:53:21
Грамотный верстальщик будет только рад научиться новому

Aleksey
03.04.2017
08:53:38
only и defer

Илья
03.04.2017
08:53:39
циклы конечно должен знать ну и ифы там.

Denis
03.04.2017
08:53:43
Тем более если он работает в компании где это нужно

Илья
03.04.2017
08:54:13
only не спасает, при обращении к другому полю будет выполнен еще sql запрос

Artem
03.04.2017
08:54:30
можно в only() указать поле для того поля

Михаил
03.04.2017
08:54:30

Denis
03.04.2017
08:55:00

Senpos
03.04.2017
08:56:02
Я не монимаю, вы хотите доказать что верстальщик должен знать джангу чтоли? Тогда нафига ему работать верстальщиком, если он может работать программистом и получать больше.

Илья
03.04.2017
08:56:40
Ну знать основы шаблонизатора и знать django это не одно и то же.

Михаил
03.04.2017
08:58:07
Ну если он понимает, что такое цикл и как он работает, то сказать ему - "чувак, вот эта штука делает запрос в БД. Запрос в БД - это медленно. Если она есть в цикле - то это будет в 100 раз медленее", несложно

Google

Denis
03.04.2017
08:58:38

Михаил
03.04.2017
08:58:47
Выкидывать исключения на каждый такой случай будет еще хуже
Тогда верстальщик КАЖДЫЙ РАЗ будет обращаться к программисту "мне тут надо имя пользователя вывести, добавь select_related"
И так на каждый чих
Потому что все, что явно не было разрешено программистом - запрещено

Илья
03.04.2017
09:00:11
Ну и хорошо, пусть лучше обратится, чам потом таам будет 800 SQL запросов.

Михаил
03.04.2017
09:00:46
Мне просто интересно, как в результате будет воркфлоу построен
Потому что по сути программисту придется сидеть вместе с верстальщиком и править свой код по мере интеграции верстки
Проще тогда ужд верстальщику сверстать голый html и отдать кодеру, чтоб он его на шаблонизатор натянул

Илья
03.04.2017
09:02:00
Не по мере интеграции верстки, а по мере изменения требований. Сначала не было в требованиях выводить имя пользователя, потом стало.

Михаил
03.04.2017
09:02:38
Эти требования клиент напрямую верстальщику пишет?
Если нет, тогда что мешает добавить select_related до начала работы верстальщика?
Требования-то известны
И не будет восьмиста запросов

Илья
03.04.2017
09:03:19
Требования не известны.
Сделали, выкатили. Заказчик посомтрел. Сказал, хочу вот еще тут имя пользователя.

Михаил
03.04.2017
09:03:49
Кому сказал?

Denis
03.04.2017
09:03:58

Михаил
03.04.2017
09:03:58
Верстальщику или тимлиду?