2016-11-15 83 views
-1

我想循環渲染模板中從數據庫中獲取的數據。使用cms插件。 我沒有問題循環html模板中的數據。但是,如果我使用CMSPlugin在佔位符中插入新應用程序,則不會顯示任何內容。在呈現模板中的簡單循環Django cms插件

如果我運行url localhost:port/test.html.I得到了我想要的輸入。但呈現的模板不會循環數據。

{% for post in posts %} 
    {{ post.firstoption }} 
{% endfor %} 

如果我使用下面的代碼,什麼都不顯示在我的渲染模板中。值在渲染模板中傳遞。因爲,如果我嘗試{{instance.firstoption}}我得到值顯示在模板中。問題是我無法用標記實例循環數據。

{% for post in instance.posts %} 
    {{ post.firstoption }} 
{% endfor %} 

我也試過{% for post in instance.posts_set.all %}{% for post in instance.posts.all %}

cms_plugins.py

class pricing(CMSPluginBase): 
    model = mymodel 
    name = _("myplugin") 
    render_template = "template.html" 
    cache = False 

    def render(self, context, instance, placeholder): 
     context.update({'instance': instance}) 
     return context 

models.py

class mymodel(CMSPlugin): 
    firstoption = models.CharField(max_length=200) 


     def __str__(self): 
    return self.firstoption 
+4

沒有任何有關'實例'模型,視圖或任何其他相關的描述,它很難說出什麼問題。請嘗試製作一個[mcve] – Sayse

+0

我可以粘貼您的視圖和cms插件。但事實是{{instance.something}}起作用。我想知道的是如何使用實例進行循環。我在我的文章中編輯並粘貼了更多代碼 – OverHeat

+0

爲初學者和模特添加您的視圖 –

回答

2

這可能是因爲你需要調用您的文章all

{% for post in instance.posts.all %} 
    {{ post.firstoption }} 
{% endfor } 
+0

嘿,我以前試過,並沒有工作。 我也嘗試過{%for post.posts_set.all%} – OverHeat

+3

** {%post.firstoption%} **這是對嗎? –

+0

@PrakharTrivedi井有所領。它應該是'{{ –