2010-07-01 90 views
13

我穿过田野试图迭代,因为它们是我的模型中写下:通过迭代模型字段 - Django的

目前

我使用这个:

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

,但该命令似乎几乎随机 :(


任何想法?

回答

22

Model类别和实例上的_meta属性是一个django.db.models.options.Options,它提供对有关Model各种有用信息的访问。

对于字段,它会按照它们创建的顺序给它们(即它们被声明的顺序相同)。

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