Django模型迭代域

2024-06-01 04:19:05 发布

您现在位置:Python中文网/ 问答频道 /正文

如何迭代和检索django模型的所有字段?在

我知道foo.item._meta.get_all_field_names()给我带来了所有的字段名。 如何访问模型实例上的这些字段(包括它们的实际值)?(除了普通符号foo.fieldname)。在

我需要这个来为我的模型建立一个自定义输出,包括它的许多关系。 有什么想法吗?在


Tags: django实例模型fieldgetfoonames关系
2条回答

这看起来很难看,但它会起作用:

for each in model_instance._meta.fields: 
    print each.value_from_object(model_instance)

也就是说,我还有一个建议。鉴于你的要求是

to build a custom output for my model including its manyTomany relations.

不如将实例serializing转换为合适的格式(XML/JSON),然后再处理它呢?这避免了对_meta或任何内部方法(可能会更改)的任何依赖。在

怎么样:

getattr(foo.__class__, <field_name>)

这应该给您字段对象,而不是给定模型实例中的值。如果您想要给定模型中字段的值疯狂,可以这样调用它:

^{pr2}$

相关问题 更多 >