我在这里有点堵塞。我正在简单地将网站从html转换为Django驱动的网站,它没有特殊内容,3页(cv / about / projects),并且是一个网络组合。
我想使用CKEditor通过管理界面编辑页面。 我也希望能够使用Django模板。
当从CK编辑界面创建页面并将内容添加到“内容”字段时,我无法将页面作为模板访问。
我认为代码对我的问题非常重要:
models.py:
from django.db import models
from ckeditor.fields import HTMLField
class Page(models.Model):
title = models.CharField(max_length=30)
content = HTMLField(blank=True, verbose_name='HTML version')
def __unicode__(self):
return self.title
views.py:
def cv(request):
cv = Page.objects.filter(id=2)
content = ([p.content for p in cv])
return HttpResponse(content)
urls.py:
url(r'^cv$', cv),
我读过关于Context&使用模板使页面动态化的加载器,所以我写了这个视图:
views.py:
from django.template import Context, loader
def about(request):
about = Page.objects.filter(id=1)
t = loader.get_template('about.html')
ct = Context({
'about': about
})
return HttpResponse(t.render(ct))
但是我需要通过各自的.html文件更新页面,而CKEdit界面不会到达我的页面。任何人都知道我要重构的内容,添加能够使用Django模板来编辑我的页面吗? (使用{%block content%} {%endblock%})虽然仍然可以使用CKEditor编辑这些页面的内容。
答案 0 :(得分:0)
如果您要扩展一些基本模板,比如说“base.html”,那么我会想:
base.html文件
<html>
<body>
{% block header %}
My header
{% endblock header %}
{% block content %}
My content
{% endblock content %}
</body>
</html>
about.html
{% extends "base.html" %}
{% block content %}
{{ about.content }}
{% endblock content %}
您将about
上下文变量传递给about.html,因此您需要调用该变量。基本上,您的模板不能完全为空。即使about.html只包含{{ about.content }}
。我认为你没有提供足够的信息来确定关于CKE的部分,但首先要确保你可以向模板渲染一些东西,然后解决CKE