alexscrat, спасибо. Мнение профессионала вашего уровня для меня весьма ценно.
профессионала моего уровня))) ахаха, та я адовый нуб вообще.
да, это так и задумано. Задача стояла решить бизнес-задачу, но при этом уложиться в бюджет, в несколько раз меньший, чем запрашивали другие. Поэтому да, небольшой, реализовано только то, что минимально необходимо для старта проекта. Но с другой стороны предусмотрено, чтобы была возможность развития.
а вот тут можно пояснения? Я сколько ни смотрю, не понимаю, что в нём плохого. Но ведь не на пустом же месте недовольство.
Тут целая отдельная тема. Мне приходилось один раз переписывать страничку, которая грузилась около минуты из-за методов с filter. Оно ничего страшного, если будет юзаться один раз на вьюху, но если вдруг попадет в цикл, а потом во вложеный цикл, ото тогда держись. Сегодня с коллегой оптимизировали функцию, которая выдавала екселину в 19к строк. Она вчера валила сервер по таймауту с 504 через 20 минут после начала обработки. Ситуация значительно отличалась от метода, но суть похожая. Короче седня переделали, запустили и за 35 сек нам отдало результат. Мы были очень рады и веселы.
Короче, я к чему. Юзайте prefetch_related, select_related и тд. Для реюзабельности можно сделать спец метод в кверисете или менеджере.
Но не берите в голову, пока оно вам не мешает. Если вдруг столкнетесь, то debug-toolbar вам все сам покажет и шишки набьет
Это такая вещь, которую везде можно увидеть и никто особо не переживает
а вот и нет. Здесь оно как раз нужно. Дефолтная локация устанавливается через админку. Мало ли, вдруг админ не установил? Не должен сайт от этого падать.
https://docs.djangoproject.com/en/1.9/ref/models/querysets/#django.db.models.query.QuerySet.first
А он и не упадет, first и last не выбрасывае исключение, а возвращает None. Бросает latest, earliest и get.
Updated 5 Feb. 2016, 21:52 by alexscrat.