我正在创建的应用程序有许多静态页面,就像一段时间内不会改变的网站页面一样。我的模特我将有一个标题字段和一个文本字段。我正在寻找一种方法来避免每个页面的多个视图和多个网址。我尝试使用flatpages,但我无法使用上下文处理器。例如,如果某个页面有许多网格。那么如何编写单个视图和一个将提供所有页面的URL以及上下文处理器。
答案 0 :(得分:3)
如果您遇到平板电脑问题,编写自己的版本并不难!
<强> models.py 强>
from markdown import markdown
class CustomFlatPage(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
slug = models.SlugField(unique=True)
<强> urls.py 强>
url(r'^(?P<slug>[-\w]+)/$','myapp.views.customflatpage', name='customflatpage'),
<强> views.py 强>
from django.views.generic.simple import direct_to_template
def customflatpage(request,slug):
page = get_object_or_404(CustomFlatPage, slug=slug)
return direct_to_template('path/flatpage_template.html',
extra_context={
"page":page,
})
模板(可以访问请求上下文等)
{{ page.title}}
{{ load markup }}
{{ page.body|markdown }}
如果你想要富文本,请在django-admin中使用TinyMCE(如果你正在使用它)或你自己的表格。