【问题标题】:Iterating through model fields - Django遍历模型字段 - Django
【发布时间】:2011-03-10 17:33:59
【问题描述】:

我正在尝试在我的模型中写下字段时迭代它们

目前我正在使用这个:

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

但顺序似乎非常随机 :(


有什么想法吗?

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-01-01
      • 2021-05-20
      • 2014-10-01
      • 2020-01-30
      • 1970-01-01
      • 2014-10-17
      相关资源
      最近更新 更多