如何从Django查询中提取字段名和值

如何从Django查询中提取字段名和值,django,django-models,django-templates,django-views,Django,Django Models,Django Templates,Django Views,假设我有这个模型 class Model(): var1 = models.TextField() var2 = models.FloatField() var3 = models.FloatField() var4 = models.FloatField() 现在我想有一个模板,我可以用于所有模型。我的要求是 我想在视图中显示var1、var2、VAR4,而不是VAR3 在

假设我有这个模型

class Model():
          var1      = models.TextField()
          var2      = models.FloatField()
          var3      = models.FloatField()
          var4      = models.FloatField()
现在我想有一个模板,我可以用于所有模型。我的要求是

我想在视图中显示var1、var2、VAR4,而不是VAR3 在模板中,我不想硬编码字段名,比如var1, var2,var3,我会做 桌子的标题,所以我想 想从数组中得到它吗 我需要与这些变量对应的所有数据 基本上我想要的是

对象\列表,其中包含DB表中所有行的字段名和字段值

对象列表-我将从表中获取表单选择var1、var2、var4

所以在模板中我可以使用

{% for field in Object_List.fields %}
  <th>{{ field }}</th> 
 {% endfor %}
 {% for object in Object_List.objects %}
            <tr>
            {% for field in object %}
                 <td>{{ value }}</td> 
            {% endfor %}
            </tr>
 {% endfor %}
那么我可以使用什么数据呢

{% for field in Object_List.fields %}
  <th>{{ field }}</th> 
 {% endfor %}
 {% for object in Object_List.objects %}
            <tr>
            {% for field in object %}
                 <td>{{ value }}</td> 
            {% endfor %}
            </tr>
 {% endfor %}
我不确定我是否解释清楚了。有没有可能实现这样的目标。
主要要求是,我只希望在模板中显示选定的字段,而不是模型中提到的所有字段。显然,这样做的方法是使用值查询:

这将为您提供一个字典列表,每个字典都将字段名映射到字段值。因此,您可以从以下第一项中获取标题行:

{% for object in objects %}
    {% if forloop.first %}
    <th>
       {% for fieldname in object.keys %}<td>{{ fieldname }}</td>{% endfor %}
    </th>
    {% endif %}
    <tr>
      {% for value in object.values %}<td>{{ value }}</td>{% endfor %}
    </tr>
{% endfor %}

恐怕你还没有解释清楚。您想在哪里指定要显示哪些字段?在.g的查询中,在原始sql中,从表中选择var1、var2、var4,以便我只获取我需要的字段。您是champ buddy,工作非常好。如果我想要所有行,我可以使用vsame函数,或者我必须使用.all。因为我用objects.all尝试了你的循环,但当它返回时没有工作,querysetMy示例会给你所有的行-如果你想过滤行,只需添加.filterwhatever=以正常方式添加的任何行即可。如果你指的是所有列,你可以使用空值调用。实际上我指的是所有列,值都可以。再次感谢你的帮助