没有模型的 Django.contrib.flatpages
我有一些带有空 content
字段的平面页面及其模板内的内容(由 template_name
字段给出)。
为什么我使用 django.contrib.flatpages
- 它允许我使用最少的 URL 配置来提供(大部分)静态页面。
- 我不必为每个人写下观点。
为什么我不需要模型 FlatPage
- 我将内容留空并仅提供模板路径。 因此我可以利用文件中的源代码;
- 我可以直接从文件系统编辑源代码,无需服务器(例如管理员)的帮助。
- 我可以利用语法突出显示和其他编辑器功能。
- 对于该模型,我必须维护平面固定装置。
- 因此同一实体的数据位于两个不同的位置。
- 如果我将内容移动到装置内,编辑将会变得更加困难。
- 即使夹具维护不是问题,我仍然需要在开发过程中一次又一次地转储和加载这些夹具。
我正在寻找什么
基本上; 摆脱 FlatPage
模型,同时保留 contrib.flatpages
功能。 我不清楚应该如何解决这个问题。 如果有一种干净的方式来修改(例如add_to_class
)FlatPages
以在数据库以外的地方获取信息,我会更喜欢这样做。 也许可以将元数据插入到模板中,然后读取此数据的特殊管理器将取代 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 < code>direct_to_template 通用视图会简单得多。 如果您不想为每个页面添加一个条目,您可以在一个视图上使用传入的参数来指定 urls.py 中的实际模板:
然后在
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:Then import the template in your
foo_index.html
: