Простой способ выйти из переменных шаблона Django

Для нового проекта мы пишем документацию о шаблонной системе Django. Мы используем Django для самого проекта документации также, таким образом, Django берет все наши переменные в качестве примера в примере кода и пытается представить их. Единственным путем мы нашли для двигений, это должно использовать {% templatetag %}, но это делает наш код действительно нечитабельным. Существует ли, возможно, способ заставить Django проигнорировать все переменные шаблона в определенном разделе?

15
задан Koen Bok 2 February 2010 в 14:56
поделиться

2 ответа

Из-за ограничений в лексиконе шаблонов Django (вроде взлома kludgy) это невозможно. Однако, если Вы хотите поместить свой пример кода в отдельные файлы, Вы можете использовать тег ssi:

{% ssi /path/to/my/code/examples/example01.html %}

И он не будет разобрать файл, а включит его дословно. Однако, это также имеет ограничения в том, что вы не можете использовать переменные в включаемом пути (т.е., если вы перемещаете расположение шаблонов, вы должны переписать или, по крайней мере, найти и заменить файлы шаблонов), и вы должны поместить включаемый путь (т.е. /path/to/my/code/examples) в настройках ALLOWED_INCLUDE_ROOTS в вашем файле settings.py. (См. http://docs.djangoproject.com/en/dev/ref/templates/builtins/#ssi.)

.
7
ответ дан 1 December 2019 в 02:01
поделиться

Я пытаюсь определить «лучшие практики» для принятия решения о том, следует ли добавлять в таблицу автоматически увеличивающееся целое число в качестве первичного ключа.

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

Допустим, у меня есть таблица, содержащая данные о химических элементах. Атомный номер каждого элемента уникален и никогда не изменится. Так что вместо использования автоматического приращения целого числа для каждого столбца, вероятно, было бы более целесообразно просто использовать атомный номер, правильно?

Да.

Было бы то же самое, если бы у меня была таблица книг? Следует ли использовать ISBN или автоматически увеличивающееся целое число для первичного ключа? Или таблица сотрудников, содержащая SSN

ISBN/SS # каждого человека, присваиваются третьими лицами, и из-за их большого размера места хранения было бы крайне неэффективным способом уникальной идентификации строки. Помните, PKeys полезны при соединении таблиц. Зачем использовать большой формат данных, такой как ISBN, который будет представлять собой многочисленные текстовые символы, в качестве уникального идентификатора, когда доступен небольшой и компактный формат, такой как Integer?

-121--1021876-

Основная проблема, которую я видел при автоприращении целочисленного подхода, заключается в экспорте данных для переноса в другой экземпляр базы данных или даже в операцию архивирования и восстановления Поскольку целое число не имеет отношения к данным, на которые оно ссылается, нет пути определять наличие дубликатов при восстановлении или добавлении данных в существующую базу данных. Если вы не хотите отношения между данными, содержащимися в строке, и PK, я бы просто использовал guid. Не очень удобно смотреть, но это решает вышеуказанную проблему.

-121--1021874-

Возможное решение состоит в том, чтобы записать шаблоны как обычно (с помощью {{x}} ), но сохранить их как .txt (или любое другое необходимое расширение). Напишите сценарий, в котором выполняется запуск этих файлов, и автоматически создайте файл .html, выполнив обратную команду templatetag (заменив {{ на {% templatetag openvariable%} и т. д.). Убедитесь, что код запущен после обновления шаблонов.

3
ответ дан 1 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: