2010-11-15 228 views
0

我將視圖中的變量i傳遞給模板。 當我打印{{subject.i.id}}時,它不起作用。 plz幫助儘快。 謝謝。模板中的django變量

# the view 
return render_to_response(
     'feedback/feedback.html', 
     {'subjects': subject_list, 'n': n, 'list': sub_list, 'i': 0}, 
     context_instance=RequestContext(request)) 

# the template 
{% for s in list %} 
    <div id="{{ subjects.i.id }}"> 
    {% for subject in s %} 
     <div> {{ subject }} </div> 
    {% endfor %} 
    </div> 
{% endfor %} 
+0

你的代碼.. 。? – 2010-11-15 13:54:22

回答

3

你需要爲這個模板過濾器工作

我的模板過濾器類似的情況:

import re 
from django import template 
from django.conf import settings 

numeric_test = re.compile("^\d+$") 
register = template.Library() 

def getattribute(value, arg): 
    """Gets an attribute of an object dynamically from a string name""" 
    if hasattr(value, str(arg)): 
      return getattr(value, arg) 
    elif hasattr(value, 'has_key') and value.has_key(arg): 
      return value[arg] 
    elif numeric_test.match(str(arg)) and len(value) > int(arg): 
      return value[int(arg)] 
    else: 
      return settings.TEMPLATE_STRING_IF_INVALID 

register.filter('getattribute', getattribute) 


# in the template 
{{ folder_info|getattribute:folder.id }} 
+0

回答得好,但是這是一個過濾器,而不是一個標籤。 – 2010-11-15 14:35:24

0

是的,如果你附上代碼,它會很好。確保你正確地呈現,和對象都有其兼容的屬性名稱

+0

#the view return render_to_response('feedback/feedback.html',{'subjects':subject_list,'n':n,'list':sub_list,'i':0},context_instance = RequestContext(request)) #模板 {list中%%對於s}

{% for subject in s%}
{{ subject }}
{%ENDFOR%}
{%ENDFOR%} – 2010-11-15 14:03:24