gpt4 book ai didi

Django 从 Field 对象获取字段名称

转载 作者:行者123 更新时间:2023-12-03 04:18:51 24 4
gpt4 key购买 nike

我正在尝试找出从 Field 对象获取模型字段名称的推荐方法。

如果 field 是对象名称,那么 field.name 似乎可以工作(我从一些 SO 帖子中发现),但令人惊讶的是它在 docs 中没有提到。 ,所以想知道这是否仍然是最好的方法,还是我错过了一些明显的东西?

最佳答案

这似乎是获取模型字段名称的正确方法。 field.name 也用于 docs (见页面底部)在解释从旧 API 迁移到新模型 _meta API 时:

MyModel._meta.get_all_field_names() becomes:

from itertools import chain
list(set(chain.from_iterable(
(field.name, field.attname) if hasattr(field, 'attname') else (field.name,)
for field in MyModel._meta.get_fields()
# For complete backwards compatibility, you may want to exclude
# GenericForeignKey from the results.
if not (field.many_to_one and field.related_model is None)
)))

[f.name for f in MyModel._meta.get_fields()] 

这也是合乎逻辑的,因为另一方面,当你想要一个字段对象时 you can get it按其名称:

f = MyModel._meta.get_field(name)

因此 f.name 将是字段的名称。

关于Django 从 Field 对象获取字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43896551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com