【问题标题】:Django templates and viewsDjango 模板和视图
【发布时间】:2012-05-26 23:07:51
【问题描述】:

我在这里有点卡。我正在将一个网站从 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 & loader 以使用模板使页面动态化,所以我写了这个视图:

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 编辑这些页面的内容。

【问题讨论】:

  • 我不明白你到底是什么意思?您有一些页面数据,您可以在视图中获取这些数据并将其发送到模板。然后模板根据模板规则以某种方式显示这些数据。你还需要什么?另外,请出示您的模板。
  • 嗯,模板是空的,它们在那里,有一个 cv.html 一个 about.html 和一个 projects.html 但模板是空的。我猜我的网址和我的视图是以错误的方式编写的,当我得到 localhost/cv 时,我得到的页面是通过管理界面生成的,而不是模板。我无法将模板链接到我在管理界面中创建的页面,这正是我想要的。但我会继续努力。

标签: python django templates ckeditor models


【解决方案1】:

如果你正在扩展一些基本模板,比如“base.html”,那么我想:

base.html

<html>
    <body>
    {% block header %}
        My header
    {% endblock header %}
    {% block content %}
        My content
    {% endblock content %}
    </body>
</html>

关于.html

{% extends "base.html" %}

{% block content %}
    {{ about.content }}
{% endblock content %}

您将about 上下文变量传递给about.html,因此您需要调用该变量。基本上,您的模板不能完全为空。即使 about.html 仅包含 {{ about.content }}。我认为您没有提供足够的信息来确定有关 CKE 的部分,但首先要确保您可以向模板渲染任何东西,然后处理 CKE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-05
    • 2012-11-13
    • 2015-03-24
    • 2019-03-14
    • 2013-04-14
    • 1970-01-01
    • 2023-03-07
    • 2013-02-17
    相关资源
    最近更新 更多