【发布时间】:2012-06-21 17:07:39
【问题描述】:
我在 django 1.3 上使用 2.2 django-cms,在 django 1.4 上使用 2.3 django-cms git repo,我注意到如果我在我的模型中包含一个 PlaceholderField,例如:
##books/models.py
class Book(models.Model):
...
description = cmsmodels.PlaceholderField('book_description', null=True, blank=True)
class BookCMSPluginModelItem(models.Model):
t_book = models.ForeignKey(Book)
...
class BookCMSPluginModel(CMSPlugin):
featured_books = models.ManyToManyField(BookCMSPluginModelItem)
template = models.CharField(max_length=256, choices= settings.BOOKS_TEMPLATES, default=settings.BOOKS_TEMPLATES[0]);
让我的 CMS 插件像这样:
##books/cms_plugins.py
class BookCMSPlugin(CMSPluginBase):
model = BookCMSPluginModel
name = _("Books Plugin")
def render(self, context, instance, placeholder):
self.render_template = instance.template;
context['instance'] = instance;
return context
然后在我的模板中,我发现我可以执行以下操作:
{% for mitem in instance.featured_books.all %}
<!-- ...... -->
<div>{% render_placeholder mitem.t_book.description %}</div>
{% endfor %}
但是,在前端编辑器中,我添加了我的新插件,并且描述字段确实显示为占位符,但是当我将鼠标悬停在它上面时,我放置插件的外部占位符处于活动状态,并且我无法直接选择内部占位符。它在管理站点中运行良好,因为我可以使用 SemanticEditor 添加内容以及我希望使用的任何其他内容。 然而,在前端,javascript 存在一个令人沮丧的问题,似乎阻止用户添加或编辑内部占位符。
我应该注意到我在这里遵循了精彩的 django-cms 文档:http://docs.django-cms.org/en/latest/extending_cms/placeholders.html,但该站点仅解决了在专门设计的页面中显示模型的上下文中的问题,不幸的是没有使用自定义 django 的模板-cms 插件。
【问题讨论】:
-
我对 django-cms 3.0.0beta2 也有同样的问题。你找到解决办法了吗?
-
3.0.6 出现同样的问题
-
似乎仍然是 3.1.0 的问题
标签: django django-templates django-cms