2010-11-15 2 views
0

i m передача переменной i с точки зрения, в шаблон. , когда я печатаю {{subject.i.id}}, тогда он не работает. plz help asap. Спасибо.переменная 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

Вашего код .. .? –

ответ

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

Хороший ответ, но это фильтр, а не тег. –

0

Да, если вы приложите код, было бы хорошо. Убедитесь, что вы правильно делаете, и объект имеет свое совместимое имя свойства

+0

# вид return render_to_response ('feedback/feedback.html', {'subject': subject_list, 'n': n, 'list': sub_list, 'i': 0}, context_instance = RequestContext (request)) # шаблон {% для х в списке%}

{% for subject in s%}
{{ subject }}
{% ENDFOR%}
{% ENDFOR%} –

Смежные вопросы