Django.contrib.flatpages без моделей

У меня есть несколько плоских страниц с пустым полем content и их содержимым внутри шаблона (с полем template_name).

Почему я использую django.contrib.flatpages

  • Это позволяет мне обслуживать (в основном) статические страницы с минимальной конфигурацией URL.
  • Мне не нужно писать представления для каждого из них.

Почему мне не нужна модель FlatPage

  • Я оставляю содержимое пустым и просто указываю путь к шаблону. Поэтому я могу воспользоваться преимуществом наличия источника в файле;
    • Я могу редактировать источник прямо из файловой системы, без помощи сервера (например, администратора).
    • Я могу воспользоваться подсветкой синтаксиса и другими функциями редактора.
  • С моделью мне нужно поддерживать приспособления для плоских страниц.
    • Таким образом, данные для одного и того же объекта находятся в двух разных местах.
    • Если я перемещу контент внутрь приспособления, его будет труднее редактировать.
      • Даже если бы обслуживание приспособлений не было проблемой, мне все равно приходилось бы сбрасывать и загружать эти приспособления снова и снова во время разработки.

Что я ищу

По сути; избавление от модели FlatPage при сохранении функциональности contrib.flatpages. У меня нет четкого представления, как это решить. Если есть чистый способ модификации (например, add_to_class) FlatPages, чтобы получить информацию где-то еще, а не в базе данных, я бы предпочел это. Возможно, метаданные можно будет вставить в шаблоны, и тогда специальный менеджер, который читает эти данные, заменит менеджер по умолчанию FlatPages.

Если я не предпочитаю ручное редактирование функциональным возможностям администратора для плоских страниц, как можно исключить базу данных из уравнения?

Вы неверно представляете себе, для чего нужна плоская страница. Он предназначен для «редко редактируемого» контента, который должен быть доступен через администратора или формы, чтобы администратор или поставщик контента мог их изменить, например, при изменении контактной информации для сайта.

Soviut 11.05.2009 11:05
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
6
1
1 315
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Использование общего представления direct_to_template было бы намного проще. Вы можете использовать переданные параметры в одном представлении, чтобы указать фактический шаблон в urls.py, если вы не хотите добавлять запись для каждой страницы:

r'^foo/(?P<template_name>.+)/$','direct_to_template', {'template': 'foo_index.html'}),

Затем импортируйте шаблон в свой foo_index.html:

{% include template_name %}

direct_to_template - это мой путь. Думаю, я слишком многого ожидал от плоских страниц. В моих шаблонах есть несколько тегов и более одного блока. Спасибо.

muhuk 07.12.2008 20:35

Другие вопросы по теме