python - django可以for循环获取数据表一行的每一列值么?
本文介绍了python - django可以for循环获取数据表一行的每一列值么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
通过.objects.get()我已经得到了我想要的那一列数据对象,现在我想通过for循环得到这行数据的每一列值,而不是"对象.列名"的方式,因为列有五十多列。
解决方案
給個範例:
myapp/models.py
from django.db import models
class MyModel(models.Model):
a = models.CharField()
b = models.CharField()
c = models.CharField()
d = models.CharField()
in Django shell:
In [3]: from myapp.models import MyModel
In [4]: m = MyModel(a='a', b='b', c='c', d='d')
In [5]: m
Out[5]: <MyModel: MyModel object>
In [6]: m._meta
Out[6]: <Options for MyModel>
In [7]: m._meta.get_fields
Out[7]: <bound method Options.get_fields of <Options for MyModel>>
In [8]: m._meta.get_fields()
Out[8]:
(<django.db.models.fields.AutoField: id>,
<django.db.models.fields.CharField: a>,
<django.db.models.fields.CharField: b>,
<django.db.models.fields.CharField: c>,
<django.db.models.fields.CharField: d>)
In [9]: for f in m._meta.get_fields():
...: print(f.name, getattr(m, f.name))
...:
id None
a a
b b
c c
d d
主要是 _meta
裡面有 get_fields()
, 可以拿到 model 裡面所有的 fields
然後透過 field.name
和 getattr(model_object, field.name)
來取得欄位名稱和值
我回答過的問題: Python-QA
这篇关于python - django可以for循环获取数据表一行的每一列值么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文