Найти - Пользователи
Полная версия: Django - чемодан без ручки
Начало » Django » Django - чемодан без ручки
1 2 3 4
d1ffuz0r
FishHook
в шаблонизаторе Джанги нельзя применить функцию, вернее можно, если функция без параметров. Это второе “не понимаю” с которым мы сталкиваемся. … Если в шаблоне нужно от A отнять B - будьте добры выдумывать велосипед. Обратиться к словарю по ключу - второй велосипед, объявить переменную в шаблогне - третий велосипед.
переходите на пхп, там это из коробки есть. :D а шаблоны на то они и шаблоны чтобы выводить информацию а не оперировать над ней. а шаблонный тег и протестировать легче и шаблоны не засоряет
FishHook
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 городить конструкцию, которую будем передавать в шаблон для настолько элементарных действий мне представляется крайне неразумным.



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

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

я тут вообще не увидел чем стандартный шаблонизитор плох, банальный цикл
cpu
Я думаю, ТС имеет ввиду тот прискорбный факт, что в джанге нельзя совершать математические операции в шаблоне.
slav0nic
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 всё не на много лучше и большая часть людей в конце приходит к чему-то аля джанга или порождает кучу костылей, возьми туже авторизацию (аутентификацию скорее) в пирамиде.
Излишняя свобода зачастую плохо заканчивается, прямо как в государстве, особенно в дилетантских руках В)

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

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

+1

Явное лучше, чем неявное.
Простое лучше, чем сложное.
Читаемость имеет значение.
d1ffuz0r
Lexander
А арифметические операции должны быть доступны в шаблоне непосредственно.
нет проблем
https://docs.djangoproject.com/en/dev/internals/contributing/bugs-and-features/#requesting-features
https://code.djangoproject.com/newticket
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB