【问题标题】:How to get field's names of rawqueryset in Django如何在 Django 中获取 rawqueryset 的字段名称
【发布时间】:2014-12-29 03:26:31
【问题描述】:

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

查看.py

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

模板.py

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

【问题讨论】:

    标签: django django-templates django-queryset


    【解决方案1】:

    我使用两个过滤器解决了这个问题:

    模板.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]
    

    【讨论】:

      【解决方案2】:

      老实说,我不确定RawQuerySet 的属性。如果是普通的QuerySet,我会试试这个。

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

      这样行吗?

      【讨论】:

      • 谢谢。但它不起作用!正如你所说,rawqueryset 没有值属性/方法。
      猜你喜欢
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 2021-11-23
      相关资源
      最近更新 更多