給個範例:
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]:
In [6]: m._meta
Out[6]:
In [7]: m._meta.get_fields
Out[7]: >
In [8]: m._meta.get_fields()
Out[8]:
(,
,
,
,
)
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) 來取得欄位名稱和值