2016-07-14 72 views
0

我大家好, 我從Django開始,我想要一個對象返回它的統計信息並直接在HTML模板中顯示它們。 對此,我的對象方法。 get_stat(self)返回一個列表和3個字典。 如何使用這些返回的數據?我可以在方法調用{{}}中看到該數組,我無法在{%%}中使用它們並在Javasript中使用它們來製作圖表。 如何取回他的陣列使用它?Django模板中的調用方法和使用返回(,,)

預先感謝您爲您的澄清

我的模型:

class Adviser(models.Model):  
    TYPES_CHOICES = (('PRF', _('Professor')), 
     ('MGR', _('Manager')),) 


    def get_stat(self): 
     some queries to create tables 

     return (list_stat1,tab_stat1,tab_stat2,tab_stat3) 

在我的模板HTML:

 
     {% for adviser in advisers %} 

      
      {{ adviser }}  
      {{ adviser.type }} 
      {% adviser.get_stat as adviser_list_stat1 adviser_tab_stat1 adviser_tab_stat2 adviser_tab_stat3 %} 
      
     {% endfor %} 

有了這個:

{{ adviser.get_stat }} 

我有我標籤: ([2,1,0,1,0],{'Cours xy':1},{},{'cours xx':5})

+0

看起來這可能是一個很好的例子爲[自定義模板標籤](https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/) – nthall

回答

0

get_stat(self)應該返回一個字典{「list_1 「:2,1,0,1,0], 「dict_1」:{ '賽道XY':1}},然後你可以這樣做:

{% for adviser in advisers %} 
    {% with ad_stat=adviser.get_stat %} 
     {{ad_stat.list_1}} 
     {{ad_stat.dict_1}} 
     .... 
    {% endfor %} 
{% endfor %} 

是你在找什麼?

+0

是的,這是我需要的東西。但現在我得到的錯誤異常類型:\t TemplateSyntaxError 異常值:\t 「與」預期的至少一個變量賦值 – user2274064

0

定義你的方法get_stat作爲一個屬性來調用它的模板:

class Adviser(models.Model):  
    TYPES_CHOICES = (('PRF', _('Professor')), 
     ('MGR', _('Manager')),) 


    @property 
    def get_stat(self): 
     some queries to create tables 

     return (list_stat1,tab_stat1,tab_stat2,tab_stat3) 

現在你可以調用它的模板:

{% for adviser in advisers %} 
    {{ adviser.get_stat }} 
{% endfor %} 
+0

嗨,我添加@財產,但我的方法有效,因爲它已經在我的桌子翻。示例表([2,1,0,1,0],{'xy Course':1},{},{'course xx':5}) – user2274064

+0

您是否嘗試過使用自定義模板標記? – Gocht

+0

嗨,我的目標是恢復4個變量來利用它們,模板標籤如何幫助我? – user2274064