2012-05-19 89 views
0

我在这里遇到了一些麻烦。我正在做一个网站从html到Django驱动的网站的简单转换,它没有特殊的内容,3页(cv/about/projects),并且是一个web组合。Django模板和视图

我想使用CKEditor来通过管理界面编辑页面。 我也希望能够使用Django模板。

从CK-edit-interface创建页面并将内容添加到“内容”字段时,我无法以模板的形式访问页面。

我认为该代码是我的问题很重要:

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), 

我读了关于上下文&装载机使使用模板的动态页面,所以我写了这样的观点:

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

我不明白你究竟是什么意思?您的页面有一些数据,您可以在视图中获取这些数据并将其发送到模板。然后模板根据模板规则以某种方式显示这些数据。你还需要什么?另外,请出示您的模板。 – ilvar

+0

那么,模板是空的,他们在那里,有一个cv.html about.html和一个projects.html,但模板是空的。我猜我的网址和我的意见写错了方式,当我去本地主机/ CV我得到的页面生成的管理界面,而不是模板。我无法将模板链接到我在管理界面中创建的页面,这正是我想要的。但我会继续努力。 – tomasantonj

回答

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