如何从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=以正常方式添加的任何行即可。如果你指的是所有列,你可以使用空值调用。实际上我指的是所有列,值都可以。再次感谢你的帮助