2014-11-02 64 views
0

我有一个“rawqueryset”对象,它的字段可以根据某些业务规则而变化。我如何访问相应模板中的字段数和名称?如何获取Django中rawqueryset的字段名称

View.py

objs=MyModel.objects.raw(sql) 
return list(objs) 

template.py

{%for obj in objs%} 
    {{obj.?}} 
    {{obj.?}} 
    . 
    ? 
{%endfor%} 

回答

0

我解决了使用2个这个问题:

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] 
0

必须诚实,我不知道有关RawQuerySet的属性。如果这是一个正常的QuerySet,我会试试这个。

{% for obj in objs.values %} 
    {% for key, val in values.items %} 
     {{ key }}: {{ val }} 
    {% endfor %} 
{% endfor %} 

这是否有诀窍?

+0

谢谢。但它不起作用!正如你所说rawqueryset没有价值的属性/方法。 – mrbf 2014-11-02 09:57:12