模板中的Django Call方法并使用return(,,)

时间:2016-07-14 13:34:31

标签: python django templates

我是谁, 我从Django开始,我想要一个对象返回其统计信息并直接在HTML模板中显示它们。 为此,我的对象方法。 get_stat(self)返回一个列表和3个字典。 我如何使用这些数据返回?我可以在方法调用{{}}中看到数组我不能在{%%}中使用它们并在Javasript中使用它们来制作图表。 如何取回他的阵列使用它?

提前感谢您的澄清

我的模特:

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})

2 个答案:

答案 0 :(得分:0)

get_stat(self)应该返回一个字典{“list_1”:[2,1,0,1,0],“dict_1”:{'Cours xy':1}}然后你可以这样做:

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

这就是你要找的东西吗?

答案 1 :(得分: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 %}