Mezzanine中的自定义页面字段不显示在模板中

时间:2013-06-10 17:13:46

标签: django mezzanine django-custom-field

我正在Mezzanine中建立一个CMS,总而言之,我对这个系统印象非常深刻。我无法告诉你我过去曾尝试过多少个CMS系统,而且总是让人失望。

总而言之,丝绸般光滑。但是我有一个用于显示YouTube视频的自定义页面,并且自定义字段(根据shell显然存在于实例中)无法在模板中呈现。

该应用名为mezz_youtube;这是models.py:

from django.db import models
from django.utils.translation import ugettext_lazy as _
from mezzanine.pages.models import Page, RichText


class YouTubePage(Page):
    """
    Implements pages with a YouTube video.
    """
    video_slug = models.SlugField(u"video ID", max_length=11)

    class Meta:
        verbose_name = _("YouTube page")
        verbose_name_plural = _("YouTube pages")

管理员工作正常,YouTube页面已成功创建,因为shell显示:

In [1]: from mezz_youtube.models import YouTubePage

In [2]: p = YouTubePage.objects.get()

In [3]: p.pk
Out[3]: 11

In [4]: p.video_slug
Out[4]: u'CKqGbpR4vvM'

但是在模板中,如此处显示的各种调试条目一样,自定义字段不会出现。这是模板:

{% extends "pages/page.html" %}

{% load mezzanine_tags %}

{% block main %}
<iframe width="853" height="480" src="http://www.youtube.com/embed/{{ page.video_slug }}" frameborder="0" allowfullscreen></iframe>

<p>Video slug is {% if page.video_slug %}present{% else %}absent{% endif %}.</p>
<p>Title: {{ page.title }} </p>
<p>Model: {{ page.content_model }} </p>
<p>fields:</p>
<ul>
{% for field, val in page.fields.iteritems %}
<li>{{ field }}: {{ val }}</li>
{% endfor %}
</ul>

{{ block.super }}

{% endblock %}

以下是输出的相应部分:

<iframe width="853" height="480" src="http://www.youtube.com/embed/" frameborder="0" allowfullscreen></iframe>
<p>Video slug is absent.</p>
<p>Title: ladeda </p>
<p>Model: youtubepage </p>
<p>fields:</p>
<ul>

</ul>

如您所见,title字段呈现,但video_slug字段不呈现。知道这里发生了什么吗?

0 个答案:

没有答案