Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 29, 2012 15:43:19

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

FishHook
в шаблонизаторе Джанги нельзя применить функцию, вернее можно, если функция без параметров. Это второе “не понимаю” с которым мы сталкиваемся. … Если в шаблоне нужно от A отнять B - будьте добры выдумывать велосипед. Обратиться к словарю по ключу - второй велосипед, объявить переменную в шаблогне - третий велосипед.
переходите на пхп, там это из коробки есть. :D а шаблоны на то они и шаблоны чтобы выводить информацию а не оперировать над ней. а шаблонный тег и протестировать легче и шаблоны не засоряет

Отредактировано d1ffuz0r (Окт. 29, 2012 15:44:08)

Офлайн

#2 Окт. 29, 2012 16:10:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

d1ffuz0r
переходите на пхп
С ПХП я расстался навсегда и не жалею об этом. Если я критикую Джангу - это моя субъективная (или объективная) критика конкретного фреймворка, а не языковой платформы.
d1ffuz0r
переходите на пхп, там это из коробки есть.
В пирамиде тоже есть из каропки, причем тут пхп?
d1ffuz0r
выводить информацию а не оперировать над ней
В шаблон передается вся информация, достаточная для того, чтобы отрисовать страницу. Пример, Вы в представлении получаете некий кверисет, предположим
class Foo(Model):
    a1=IntegerField(...)
    a2=IntegerField(...)
    a3=IntegerField(...)
def view(request):
    ...
    ...
    context['foo_list']=Foo.objects.filter(....)
Мое ИМХО, если в шаблоне нужно отрисовать таблицу, в которой будут столбцы a1, a2, a3, a3-a1, a3-a2, то вся необходимая информация для этого сформирована и передана. Можно предположить, что наш верстальщик - дебил и элементарные математические операции ему недоступны. Черт его знает где как, мы таких не держим. Писать шаблонный тег или создавать в модели очередную стопятьсотую property или во view городить конструкцию, которую будем передавать в шаблон для настолько элементарных действий мне представляется крайне неразумным.





Офлайн

#3 Окт. 29, 2012 19:29:51

cpu
От:
Зарегистрирован: 2011-12-29
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

d1ffuz0r
переходите на пхп, там это из коробки есть. :D а шаблоны на то они и шаблоны чтобы выводить информацию а не оперировать над ней. а шаблонный тег и протестировать легче и шаблоны не засоряет
Не слушайте его, переходите лучше на flask.



Офлайн

#4 Окт. 30, 2012 10:17:00

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

FishHook
а более подробные примеры будут на тему “всё пропало”?)

FishHook
Мое ИМХО, если в шаблоне нужно отрисовать таблицу, в которой будут столбцы a1, a2, a3, a3-a1, a3-a2

я тут вообще не увидел чем стандартный шаблонизитор плох, банальный цикл

Офлайн

#5 Окт. 30, 2012 10:26:51

cpu
От:
Зарегистрирован: 2011-12-29
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

Я думаю, ТС имеет ввиду тот прискорбный факт, что в джанге нельзя совершать математические операции в шаблоне.



Отредактировано cpu (Окт. 30, 2012 10:27:48)

Офлайн

#6 Окт. 30, 2012 10:49:01

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

cpu
эм, не углядел

ну это всё делается за 2 минуты фильтрами, сомнительный недостаток
https://github.com/gwrtheyrn/django-mathfilters/blob/master/mathfilters/templatetags/mathfilters.py тот же глянь

вообще арифметика в шаблоне появится только тогда, когда изменится философия джанги)

The template system shouldn’t support functionality that goes beyond this basic goal.

If we wanted to put everything in templates, we’d be using PHP. Been there, done that, wised up.

Короче когда это обсуждалось в тикетах джанги, то был ответ от jacob что в core джанги это не надо, сомнительно, мне это тоже не сильно нравится, но не такая это и смертельная проблема)
Меня тоже многое смущает, но в конце часто прихожу к выводу, что во flask или pyramid всё не на много лучше и большая часть людей в конце приходит к чему-то аля джанга или порождает кучу костылей, возьми туже авторизацию (аутентификацию скорее) в пирамиде.
Излишняя свобода зачастую плохо заканчивается, прямо как в государстве, особенно в дилетантских руках В)

поехали дальше …

Отредактировано slav0nic (Окт. 30, 2012 10:57:43)

Офлайн

#7 Окт. 30, 2012 11:00:01

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

slav0nic
вообще арифметика в шаблоне появится только тогда, когда изменится философия джанги)
Да, но в стандартных тегах Джанги есть фильтр add, получается, что складывать числа - это в пределах философии, а вычитать - уже за пределами.



Офлайн

#8 Окт. 30, 2012 12:04:39

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

slav0nic
ну это всё делается за 2 минуты фильтрами, сомнительный недостаток
Если вспомнить слова Гвидо, то вызов лишней функции - вот недостаток.
А арифметические операции должны быть доступны в шаблоне непосредственно.



Офлайн

#9 Окт. 30, 2012 12:24:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Django - чемодан без ручки


Lexander
Если вспомнить слова Гвидо, то вызов лишней функции - вот недостаток.
А арифметические операции должны быть доступны в шаблоне непосредственно.

+1

Явное лучше, чем неявное.
Простое лучше, чем сложное.
Читаемость имеет значение.



Офлайн

#10 Окт. 30, 2012 12:30:16

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

Django - чемодан без ручки

Lexander
А арифметические операции должны быть доступны в шаблоне непосредственно.
нет проблем
https://docs.djangoproject.com/en/dev/internals/contributing/bugs-and-features/#requesting-features
https://code.djangoproject.com/newticket

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version