如何使用变量在元组中查找? (Django的)

时间:2016-06-25 19:38:05

标签: django django-templates

我有一个元组,这样

{{VISIBILITY_CHOICES.1.1}}

输出"你好"。

我有模特"任务"使用属性" visibility_status",并在循环中,假设task.visibility_status的所有迭代输出1

{{task.visibility_status}}

输出1。

如何在元组查找中使用此task.visibility_status?类似于VISIBILITY_CHOICES [task.visibility_status] [1]的另一种语言。

我对django很新...非常感谢。

编辑: 我正在运行的代码:

{% for task in tasks %}
    <div class="post">
         <h1><a href="">{{ task.subject }}</a></h1>
         <div class="date">
             <p>Due: {{ task.due_date }}</p>
             <p>Assigned to: {{task.assigned_to}}</p>
         </div>
         <p>{{ task.text_area|linebreaks }}</p>
         {% with args=""|add:task.visibility_status|add:",1" %}
         <p>Visibility Status: {{VISIBILITY_CHOICES|get_index:args}}({{ task.visibility_status }})</p>
         {% endwith %}
         <p>Case Status: {{ task.case_status }}</p>
         <div class="date">
             <p>Created: {{ task.created_date }} by {{ task.author }}</p>
         </div>
     </div>
{% endfor %}

1 个答案:

答案 0 :(得分:0)

虽然内置名称tuple在模板中可能没有任何语法含义,但我会在下面的代码中使用my_tuple

我使用with创建了一个上下文,用于构建索引my_tuple的args(即task.visibility_status1)::

{% with x=task.visibility_status|stringformat:"s" %}
{% with args=x|add:",1" %}

    {{ my_tuple|get_index:args }}

{% endwith %}
{% endwith %}

custom template filter中,我已经拆分并重新创建了参数,并在plain python中使用索引来返回索引处的项目:

from django import template

register = template.Library()

@register.filter
def get_index(my_tuple, args):
    arg1, arg2 = args.split(',') # split on the comma separator
    try:
        i = int(arg1)
        j = int(arg2)
        return my_tuple[i][j] # same as my_tuple[task.status][1]
    except: 
        return None