迭代模型字段 - Django

时间:2010-07-01 16:08:58

标签: python django django-models

我正在尝试遍历我在模型中写下的字段

目前我正在使用它:

def attrs(self):
  for attr, value in self.__dict__.iteritems():
    yield attr, value

但订单似乎非常随机 :(


有什么想法吗?

1 个答案:

答案 0 :(得分:22)

_meta类和实例上的Model属性为django.db.models.options.Options,可以访问有关Model的各种有用信息。

对于字段,它将按照创建的顺序(即声明它们的顺序)给予它们。

def attrs(self):
    for field in self._meta.fields:
        yield field.name, getattr(self, field.name)