6

我有一些带有空content字段的平面页面及其模板内的内容(带有template_name字段)。

为什么我使用django.contrib.flatpages

  • 它允许我以最少的 URL 配置服务(大部分)静态页面。
  • 我不必为每个人编写视图。

为什么我不需要模型FlatPage

  • 我将内容留空,只提供一个模板路径。因此,我可以利用文件中的源代码;
    • 我可以直接从文件系统编辑源代码,无需服务器(例如管理员)的帮助。
    • 我可以利用语法高亮和其他编辑器功能。
  • 使用该模型,我必须维护平面页面的固定装置。
    • 因此,同一实体的数据位于两个不同的位置。
    • 如果我将内容移动到夹具内,则编辑将更加困难。
      • 即使夹具维护不是问题,我仍然需要在开发过程中一次又一次地转储和加载这些夹具。

我在找什么

基本上; FlatPage在保持contrib.flatpages功能的同时摆脱模型。我不清楚应该如何解决这个问题。如果有一种简洁的修改方式(如add_to_classFlatPages以在数据库以外的地方获取信息,我更愿意这样做。也许可以将元数据插入到模板中,然后读取此数据的特殊管理器将替换FlatPages.

如果我不喜欢手动编辑而不是平面页面的管理功能,那么如何将数据库排除在外?

4

1 回答 1

9

使用direct_to_template通用视图会简单得多。如果您不想为每个页面添加条目,则可以在一个视图中使用传入的参数来指定 urls.py 中的实际模板:

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

然后将模板导入您的foo_index.html

{% include template_name %}
于 2008-12-06T22:08:59.773 回答