没有型号的Django.contrib.flatpages

时间:2008-12-06 21:48:56

标签: python django templates django-flatpages

我有一些空content字段的内页及其内容在模板中(以template_name字段给出)。

为什么我使用django.contrib.flatpages

  • 它允许我(通常)提供最少URL配置的静态页面。
  • 我不必为每个人写下意见。

为什么我不需要模型FlatPage

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

我在寻找什么

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

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

1 个答案:

答案 0 :(得分:9)

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

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

然后在foo_index.html中导入模板:

{% include template_name %}