Django-cms 和 autoblocks

Django-cms and autoblocks

我正在处理在线商店项目。在产品模型中,我有描述字段,但它是空的。描述数据以某种方式存储在 django-cms 和 autoblocks 中。在页面上,我可以使用 django-cms 编辑该描述。在模板标签中 {% autoblock product.slug %} 行是描述。

在 views.py 中,我将 'product' 作为上下文传递,但它的 slug 字段与描述无关。另外,如果我写 {{ product.slug }},它会给我 slug。

也在谷歌上搜索了 Autoblocks,但最终找到的是这个模型:

class Autoblock(models.Model):
    composite_id = models.CharField(max_length=150)
    content = PlaceholderField('content')
    site = models.ForeignKey(Site)

    def __unicode__(self):
        return self.composite_id

所有这些字段都与描述无关。

我挣扎了很长时间才找到那个描述。任何提示将不胜感激。

已编辑:

产品型号:

class HBaseProduct(Product):
    def __init__(self, *args, **kwargs):
        super(HBaseProduct, self).__init__(*args, **kwargs)

    image = models.ImageField(upload_to='images/', blank=True, max_length=300,        verbose_name=_('Image'))
    position = models.IntegerField(default=0, null=False)
    description = models.TextField(null=True, blank=True)

您的描述在 Autoblock.content 中,它是 ForeignKey'cms.Placeholder',它又包含 cmsplugin_set'cms.CMSPlugin' 个模型的树。

目前没有直接的方法将 Placeholder 转换为字符串(HTML)以在 request/response 循环之外的其他地方使用。

你最好的选择是调用 Placeholder.render 使用包含(假)Django Request 对象的上下文对象。这将 return 呈现的内容,然后您可以将其存储在 description.