首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用字符串而不是点语法来访问Django模型的字段?

使用字符串而不是点语法来访问Django模型的字段?
EN

Stack Overflow用户
提问于 2012-02-21 22:27:58
回答 2查看 37.7K关注 0票数 81

在Django中,我可以这样做:

test = Test.objects.get(id=1)
test.name

我希望能够使用动态生成的字符串访问属性,如下所示:

test['name']

或者,使用字符串的任何其他语法。我试过了

test._meta.get_field_by_name('name')

但是这会返回字段本身,而不是值。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-21 22:37:23

你可以使用python内置的getattr()函数:

getattr(test, 'name')
票数 124
EN

Stack Overflow用户

发布于 2015-03-26 07:54:06

其他答案仍然有效,但是现在您可以使用Django的_meta.get_field()来完成此操作。

test._meta.get_field('name')

请注意,Model从1.8开始提供官方支持和documentation,但在其官方文档发布之前的版本中已经分发和使用。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9379249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档