python - 我如何遍历对象的字段?

标签 python django model

我有一个这样的模型,我怎样才能遍历它而不必输入 company.id、company.name 等?

class Company(models.Model):
    name = models.CharField(max_length=1000)
    website = models.CharField(max_length=1000)
    email = models.CharField(max_length=200)
    phone_number = models.CharField(max_length=100)
    city = models.CharField(max_length=1000)
    zip = models.IntegerField()
    state = models.CharField(max_length=1000)
    address = models.CharField(max_length=1000)
    address2 = models.CharField(max_length=1000)

最佳答案

你可以像这样遍历所有字段名

for name in Company._meta.get_all_field_names():
    print name

如果您有类别实例,这也适用:

c = Company(name="foo",website="bar",email="baz@qux.com",....,)
c.save()
for field in c._meta.get_all_field_names():
    print getattr(c, field, None)

Django 1.8 更新

Django 1.8 现在有一个 official model Meta api您可以轻松获取所有字段:

from django.contrib.auth.models import User
for field in User._meta.get_fields():
    print field

关于python - 我如何遍历对象的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353804/

相关文章:

python - django runserver 在 docker-compose up 中挂起,但在 docker-compose run 中正常运行

r - 在 R 中的两个 glm 模型之间执行 anova() 时如何提取 p 值

python - 每次在 django 中创建另一行时创建一行

python - 无法在 Mac OS X 上使用 pip 安装 simpleaudio

python - "correct"在 Python 中定义异常而没有 PyLint 提示的方法

java - Python tkinter从 Canvas 上删除线条/形状而不删除背景图像

django - 与Flas一起使用Django

python - 通过 datetime.date 列表选择数据帧行(datetimeindex)

Django 部分更新

java - 将外键设为模型中的主键