我有自定義插件與下一個結構。 models.py看起來像如何從模板中顯示django-cms自定義插件的數據
class ProductDescription(models.Model):
name = models.CharField(max_length=30)
icon = models.ImageField(upload_to="installation_image", blank=True, null=True)
description = models.TextField(blank=True, null=True)
def __unicode__(self):
return self.name
class ProductPlugin(CMSPlugin):
product = models.ForeignKey(ProductDescription)
class ProductSpecification(models.Model):
product = models.ForeignKey(ProductDescription)
specification = models.TextField(blank=True, null=True)
class InstallationStep(models.Model):
product = models.ForeignKey(ProductDescription)
step = models.TextField(blank=True, null=True)
image = models.ImageField(upload_to="installation_image", blank=True, null=True)
admin.py
class InstallationStepInline(admin.StackedInline):
model = InstallationStep
extra = 0
class ProductSpecificationInline(admin.StackedInline):
model = ProductSpecification
extra = 0
class DeviceAdmin(admin.ModelAdmin):
inlines = [ProductSpecificationInline ,
InstallationStepInline]
admin.site.register(ProductDescription, DeviceAdmin)
和cms_plugin.py
class CMSProductPlugin(CMSPluginBase):
model = ProductPlugin
name = _("Product Description")
render_template = "product_description.html"
def render(self, context, instance, placeholder):
context.update({
'product':instance.product,
'object':instance,
'placeholder':placeholder
})
return context
plugin_pool.register_plugin(CMSProductPlugin)
所以,每個產品可以有沒有或幾種規格和安裝步驟。 而問題是我如何渲染這些規範和模板中的步驟? 我知道如何獲取ProductDescription類的數據。這就像
<div class="test">{{ product.description }}</div>
但我怎樣才能提取其他數據? !我想這應該是這樣的
{% for steps in product.InstallationStep.all %}
<div class="test">{{ steps.step }}</div>
{% endfor %}
,但事先並不做任何事情=(
感謝
謝謝你!你救了我的一天!只需要注意一點,我必須使用小寫字母,例如product.installationstep_set.all – poul