python - django可以for循环获取数据表一行的每一列值么?
阿神
阿神 2017-04-18 09:21:04
[Python讨论组]

通过.objects.get()我已经得到了我想要的那一列数据对象,现在我想通过for循环得到这行数据的每一列值,而不是"对象.列名"的方式,因为列有五十多列。

阿神
阿神

闭关修行中......

全部回复(1)
天蓬老师

給個範例:

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.namegetattr(model_object, field.name) 來取得欄位名稱和值


我回答過的問題: Python-QA

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号