迭代模型字段 - Django

Rad*_*Hex 13 python django django-models

我正在尝试迭代字段,因为它们在我的模型中写下:

目前我正在使用这个:

def attrs(self):
  for attr, value in self.__dict__.iteritems():
    yield attr, value
Run Code Online (Sandbox Code Playgroud)

但顺序似乎很随机 :(


有任何想法吗?

Jon*_*nan 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)
Run Code Online (Sandbox Code Playgroud)