遍历模型字段 - Django

Posted

技术标签:

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

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

目前我正在使用这个:

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

但顺序似乎非常随机 :(


有什么想法吗?

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于遍历模型字段 - Django的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Django 模型中的函数遍历 SQL 数据库?

Django:遍历模板中的过滤列表

Django过滤器遍历多个外键和通用外键

python django models.Model 遍历所有字段

Django模板,如果它们的id等于父循环名称,则循环遍历项目

Django怎样遍历字典?