Пользовательские поля страницы в мезонине не отображаются в шаблоне
Я строю CMS в Мезонине, и в целом я чрезвычайно впечатлен системой. Я не могу сказать вам, сколько систем CMS я пытался настроить в прошлом и разочаровался.
В целом это было гладко, как шелк. Но у меня есть настраиваемая страница для отображения видео на YouTube, и настраиваемое поле (которое определенно присутствует в экземпляре, согласно оболочке) не отображается в шаблоне.
Приложение называется 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")
Админ работает нормально, и YouTubePage был успешно создан, как показывает оболочка:
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
поле нет. Есть идеи, что здесь происходит?