8 октября 2018 г. 9:57

Загрузка кастомных template tags в качестве middleware

Django, inclusion_tag, middleware

Добрый день, Дорогие пользователи EVILEG!

Большое количество функционала по формированию шаблонов перевожу на использование inclusion_tag и т.д.

Просто последний рефакторинг показал, что ручное прописывание в теории может сэкономить процессорное время, но нифига не экономит время разработки, что лучше повторяющиеся элементы прописать в качестве inclusion_tag и писать так

{% load my_template_tags %}
{% my_tag %}

чем вручную писать все html теги

Но посетила мысль, а как запихать модуль тегов внутрь middleware, чтобы каждый раз не писать

{% load my_template_tags %}

а писать только

{% my_tag %}

Реализовывал кто-нибудь такое?


Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
5

вроде так не делается. точнее, ясно понятно, можно(но сложно и не очевидно), но не делается. По идеологическим причинам. по поводу времени разработки - не понял. вроде добавить load ... в pycharm-е, который умеет сканировать темплейт тэги - не сильно длительный процесс.

0

Поэтому и хотелось услышать стороннее мнение. Стоит ли вообще заморачиваться с middleware.

А по поводу скорости разработки, это относится к причине, когда прописывал всю вёрстку руками, в итоге получилось много дублирования, которое при поддержке проекта превращается в исправление кода во многих шаблонах, когда при наличии inclusion_tag позволит сделать исправление только в одном шаблоне. В общем исправляю накопившийся технический долг, который сформировался в то время, когда у меня ещё не было устоявшегося взгляда на формирование некоторых элементов дизайна сайта. То есть конкретно к вопросу это не относится.

А что касается наличия или отсутствия load , то согласен - это не так долго и времени не отнимает, просто размышляю над тем, как лучше сделать.


0

я стараюсь делать какие-то куски кода - чем-то вроде компонентов в JS фреймворках. тоесть один шаблон - законченый компонент, например одно поле формы оно может содержать лейбл, само поле, поле описания ошибки и все прочее, а всю форму собирать из этих самых компонентов. при этом получившаяся форма - тоже компонент. а данные передавать как аргументы. так, что поправив один шаблон одного компонента, он меняется везде. получилось достаточно удобно.


при этом, из-за pre-load модели инициализации, все работает быстро - каждый шаблон находится и загружается в память на этапе инициализации.

0

правда иногда некоторые страницы я делаю полностью на JS - иногда так оказывается проще. но тогда могут возникнуть проблемы с SEO и прочим, а мне пока не хватает квалификации настраивать server side rendering=)

0

А я на днях добрался до переопределения ForeignKey Field и ManyToManyField. Забодало меня настраивать виджеты в формах, чтобы autocomplite работал на фронтенде пользователя, а то в Django автокомплит для этих полей работает только в Админке. Прикрутил в переопределённых формах django-autocomplite-light, после чего поудалял настройку виджетов во всех формах, только поменял поля ForeignKey на свои кастомные с указанием шаблона url для автокомплита.


0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
25 мая 2019 г. 16:20
Андрей Янкович

C++ - Тест 001. Первая программа и типы данных

  • Результат:93баллов,
  • Очки рейтинга8
m
19 мая 2019 г. 1:49
mahhaki

Qt - Тест 001. Сигналы и слоты

  • Результат:78баллов,
  • Очки рейтинга2
S
17 мая 2019 г. 13:14
SunBro

Qt - Тест 001. Сигналы и слоты

  • Результат:42баллов,
  • Очки рейтинга-8
Последние комментарии
21 мая 2019 г. 20:10
Дмитрий

Приветствую! Я думаю дойдёт и до этого, но пока изучать его у меня нет желания.
20 мая 2019 г. 19:20
Евгений Легоцкой

Добрый день! Вы не думали разместить репозиторий проекта на GitHub?
P.
18 мая 2019 г. 14:03
PELMYACH .

Спасибо большое! Вскоре буду разбираться!
18 мая 2019 г. 9:13
Евгений Легоцкой

Добрый день! Отнимать значение общего счётчика можно в деструкторе класса кнопки QDynamicButton::~QDynamicButton(){ ResID--;} При этом я бы ещё переустанавливал значения вс...
P.
14 мая 2019 г. 22:33
PELMYACH .

Здравствуйте!А не подскажите, как можно при удалении какой либо кнопки, у щётчика отнять значение?Дабы например четвёртой кнопке соответствовал ID 4, а не 5 скажем
Сейчас обсуждают на форуме
24 мая 2019 г. 6:48
Евгений Легоцкой

Если там будут только перечисления внутри namespace, то жа, достаточно будет заголовочного файла
24 мая 2019 г. 6:28
Андрей Янкович

работает любой http сервер, и можно использовать обсалютно любой портпример <RemoteRepositories> <Repository> <Url>http://178.124.160.6:3030/A/B&l...;
23 мая 2019 г. 14:40
Михаиллл

Попробовал сделать этот запрос по http и получил json файл. request.setUrl(QUrl("https://jsonplaceholder.typicode.com/todos/1")); Как Вы думаете, почему https не работает и как это и...
23 мая 2019 г. 10:42
Михаиллл

Спасибо, помогло.
23 мая 2019 г. 6:31
Евгений Легоцкой

Для задач и граф-то не нужен. Достаточно будет таблицы в локальной базе данных SQLite, в которой указывается задача, время и т.д. В этом разделе есть примеры по работа с базой д...

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы

EVILEG
О нас
Услуги
Присоединяйтесь к нам
© EVILEG 2015-2019
Рекомендует хостинг TIMEWEB