我有一个" rawqueryset"对象,其字段可以根据某些业务规则而变化。如何在相应的模板中访问其计数和字段名称?
View.py
objs=MyModel.objects.raw(sql)
return list(objs)
template.py
{%for obj in objs%}
{{obj.?}}
{{obj.?}}
.
?
{%endfor%}
答案 0 :(得分:1)
我使用两个过滤器解决了这个问题:
template.py:
{% load my_tags %}
{%for obj in objs%}
{%for key in obj|get_dict %}
{% with d=obj|get_dict %}
{{key}} - {{ d|get_val:key }}
{% endwith %}
{%endfor%}
{%endfor%}
my_tags.py:
@register.filter(name='get_dict')
def get_dict(v):
return v.__dict__
@register.filter(name='get_val')
def get_val(value, arg):
return value[arg]
答案 1 :(得分:0)
一定要诚实,我不确定RawQuerySet
的属性。如果这是正常的QuerySet
,我会试试这个。
{% for obj in objs.values %}
{% for key, val in values.items %}
{{ key }}: {{ val }}
{% endfor %}
{% endfor %}
这样做可以吗?