Итерация через образцовые поля - Django

Я пытаюсь выполнить итерации через поля, поскольку они записаны в рамках моей модели:

в настоящее время я использую это:

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

но порядок кажется в значительной степени случайным :(


Какие-либо идеи?

13
задан RadiantHex 1 July 2010 в 16:08
поделиться

1 ответ

Атрибут _meta в классах и экземплярах Model - это django.db.models.options.Options , который обеспечивает доступ ко всем видам полезной информации о рассматриваемая Модель .

Для полей он выдаст их в том порядке, в котором они были созданы (то есть в том же порядке, в котором они были объявлены).

def attrs(self):
    for field in self._meta.fields:
        yield field.name, getattr(self, field.name)
22
ответ дан 1 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: