Django-cms和autoblocks

时间:2016-02-06 09:36:33

标签: django django-cms

我正在与网上商店项目合作。在产品型号中,我有描述字段,但它是空的。不知何故,描述数据存储在django-cms和autoblocks中。从页面,我可以用django-cms编辑该描述。在模板标记{% autoblock product.slug %}中,行是说明。

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

还有关于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)

1 个答案:

答案 0 :(得分:2)

您的说明位于Autoblock.contentForeignKey'cms.Placeholder',后者在[{1}}中保存'cms.CMSPlugin'个模型的树。

目前还没有直接的方法可以将cmsplugin_set转换成一个字符串(HTML),以便在请求/响应周期之外的其他地方使用。

最好的办法是使用包含(伪)Django Placeholder对象的上下文对象调用Placeholder.render。这将返回渲染的内容,然后您可以将其存储在Request