2014-11-02 69 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