Python Django模板和视图
我这里有点麻烦。我正在做一个从html到Django驱动的网站的简单转换,它没有特殊的内容,有3个页面(cv/about/projects),有点像一个web组合 我想使用CKEditor通过管理界面编辑页面。 我还希望能够使用Django模板 当从CK编辑界面创建页面并将内容添加到“内容”字段时,我无法作为模板访问页面 我认为代码对我的问题很重要: models.py:Python Django模板和视图,python,django,templates,ckeditor,models,Python,Django,Templates,Ckeditor,Models,我这里有点麻烦。我正在做一个从html到Django驱动的网站的简单转换,它没有特殊的内容,有3个页面(cv/about/projects),有点像一个web组合 我想使用CKEditor通过管理界面编辑页面。 我还希望能够使用Django模板 当从CK编辑界面创建页面并将内容添加到“内容”字段时,我无法作为模板访问页面 我认为代码对我的问题很重要: models.py: from django.db import models from ckeditor.fields import HTMLF
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)
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))
URL.py:
url(r'^cv$', cv),
我阅读了有关使用模板使页面动态化的Context&loader的内容,因此我编写了以下视图:
views.py:
def cv(request):
cv = Page.objects.filter(id=2)
content = ([p.content for p in cv])
return HttpResponse(content)
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编辑这些页面的内容。如果您正在扩展一些基本模板,比如“base.html”,那么我可以想象: base.html
<html>
<body>
{% block header %}
My header
{% endblock header %}
{% block content %}
My content
{% endblock content %}
</body>
</html>
您将
about
上下文变量传递给about.html,因此需要调用该变量。基本上,模板不能完全为空。即使about.html只包含{{{about.content}}
。我认为您没有提供足够的信息来确定关于CKE的部分,但首先要确保您可以向模板呈现一些东西,任何东西,然后处理CKE我不明白您的确切意思是什么?您有一些页面数据,您可以在视图中获取这些数据并将其发送到模板。然后模板根据模板规则以某种方式显示这些数据。你还需要什么?另外,请展示你的模板。模板是空的,它们在那里,有一个cv.html,一个about.html和一个projects.html,但是模板是空的。我猜我的URL和视图写得不对,当我得到localhost/cv时,我得到的是通过管理界面生成的页面,而不是模板。我无法将模板链接到我正在管理界面中创建的页面,这正是我想要的。但我会继续努力的。