我正在与网上商店项目合作。在产品型号中,我有描述字段,但它是空的。不知何故,描述数据存储在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)
答案 0 :(得分:2)
您的说明位于Autoblock.content
,ForeignKey
到'cms.Placeholder'
,后者在[{1}}中保存'cms.CMSPlugin'
个模型的树。
目前还没有直接的方法可以将cmsplugin_set
转换成一个字符串(HTML),以便在请求/响应周期之外的其他地方使用。
最好的办法是使用包含(伪)Django Placeholder
对象的上下文对象调用Placeholder.render
。这将返回渲染的内容,然后您可以将其存储在Request
。