0

私はここで少し渋滞しています。私はウェブサイトをhtmlからDjango主導のサイトに単純に変換しています。特別なコンテンツはなく、3ページ(cv / about / projects)で、少しウェブポートフォリオです。

CKEditorを使用して、管理インターフェイスを介してページを編集できるようにしたい。また、Djangoテンプレートを使用できるようにしたいと思います。

CK-edit-interfaceからページを作成し、「content」フィールドにコンテンツを追加すると、テンプレートとしてページにアクセスできません。

私が思うコードは私の質問にとって重要です:

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を使用して、これらのページのコンテンツを編集することはできますが。

4

1 に答える 1

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.html に渡したaboutので、その変数を呼び出す必要があります。基本的に、テンプレートを完全に空にすることはできません。about.html に{{ about.content }}. CKE に関する部分を判断するのに十分な情報が提供されていないと思いますが、まず何かをテンプレートにレンダリングできることを確認してから、CKE に取り組みます。

于 2012-05-21T22:51:23.923 に答える