我想將此代碼轉換爲更可繼承的代碼以避免編碼。考慮我的代碼是簡單而簡單的答案是需要的。如何通過django變量訪問對象屬性?
{{ entity.name }}
{{ entity.description }}
我要轉換爲這樣的代碼:
{% for attribute in attributes %}
{{ entity ??? }} == entity.get_attr(attribute)
{% end for %}
什麼是它有效的語法?
我想將此代碼轉換爲更可繼承的代碼以避免編碼。考慮我的代碼是簡單而簡單的答案是需要的。如何通過django變量訪問對象屬性?
{{ entity.name }}
{{ entity.description }}
我要轉換爲這樣的代碼:
{% for attribute in attributes %}
{{ entity ??? }} == entity.get_attr(attribute)
{% end for %}
什麼是它有效的語法?
帶有過濾器的最簡單的例子:
# templatetags.ry
from django import template
register = template.Library()
@register.filter
def get_attr(object, name):
return getattr(object, name, '')
您的模板:
{% load templatetags %}
{% for attribute in attributes %}
{{ entity|get_attr:attribute }}
{% end for %}
不可能做實體[名稱]? – Chameleon
如果你使用[jinja2](http://jinja.pocoo.org/docs/dev/templates/#variables),這是可能的。但在* jinga1 *中,您必須使用自定義過濾器。 –
你需要寫一個customm模板標籤/過濾器。 –
https://djangosnippets.org/snippets/411/ – Anentropic