Django-cms占位符字段在自定义插件中,用于占位符,而不是前端可编
发布时间:2020-12-20 13:28:31 所属栏目:Python 来源:网络整理
导读:我在 django 1.3上使用2.2 django-cms,在django 1.4上使用2.3 django-cms git repo,我注意到如果我在我的模型中包含一个PlaceholderField,例如: ##books/models.pyclass Book(models.Model): ... description = cmsmodels.PlaceholderField('book_descripti
我在
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插件的模板. 谢谢, 扎克 解决方法
在
this thread on GitHub中,一位django-cms开发人员表示Django CMS 2.2中没有插件插件架构.
我已经尝试了最新的开发分支,它现在正在运行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |