没有模型的 Django.contrib.flatpages

发布于 2024-07-10 02:16:15 字数 911 浏览 5 评论 0原文

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

为什么我使用 django.contrib.flatpages

  • 它允许我使用最少的 URL 配置来提供(大部分)静态页面。
  • 我不必为每个人写下观点。

为什么我不需要模型 FlatPage

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

我正在寻找什么

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

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

I have some flatpages with empty content field and their content inside the template (given with template_name field).

Why I am using django.contrib.flatpages

  • It allows me to serve (mostly) static pages with minimal URL configuration.
  • I don't have to write views for each of them.

Why I don't need the model FlatPage

  • I leave the content empty and just supply a template path. Therefore I can take advantage of having the source in a file;
    • I can edit the source directly from the file system, without the help of a server (such as admin).
    • I can take advantage of syntax highlightning and other editor features.
  • With the model I have to maintain fixtures for flatpages.
    • So the data for the same entity is in two seperate places.
    • If I move the content inside the fixture it'll be more difficult to edit.
      • Even if fixture maintenance was a non-issue I'd still need to dump and load these fixtures again and again during development.

What I am looking for

Basically; getting rid of FlatPage model while maintaining contrib.flatpages functionality. I don't have a clear idea how this should be solved. If there's a clean way of modifying (like add_to_class) FlatPages to get the information somewhere other than the database I'd prefer that. Maybe the metadata can be inserted to the templates and then a special manager that reads this data would replace the default manager of FlatPages.

If I don't prefer manual editing over admin functionality for flatpages, how can take the database out of the equation?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼前雾蒙蒙 2024-07-17 02:16:15

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

r'^foo/(?P<template_name>.+)/

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

{% include template_name %}
,'direct_to_template', {'template': 'foo_index.html'}),

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

Using the direct_to_template generic view would be a lot simpler. You could use the passed in parameters on one view to specify the actual template in urls.py, if you don't want to add an entry for each page:

r'^foo/(?P<template_name>.+)/

Then import the template in your foo_index.html:

{% include template_name %}
,'direct_to_template', {'template': 'foo_index.html'}),

Then import the template in your foo_index.html:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文