加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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中没有插件插件架构.

我已经尝试了最新的开发分支,它现在正在运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读