首页 > 解决方案 > 如何通过详细名称或列名称访问 Django 模型中的字段名称

问题描述

我有模型的详细名称或列名称,我想获得相应的字段名称。我可以使用 _meta... 访问所有字段名称,但我只想根据详细名称访问特定字段名称。

我想插入详细名称或列名并返回字段名称。我发现的所有示例都只能在 Model._meta.get_field('fieldname') 中输入字段名称,而不是详细名称来获取字段名称。

res = Model._meta.get_field('test_field').verbose_name
res returns  'Test Field'

res = Model._meta.get_field('test_field').name
res returns 'test_field'

如果我输入 ex 的详细名称:

res = Model._meta.get_field('Test Field').name   

我收到一个错误raise FieldDoesNotExist KeyError" 'Test Field'

我希望输出是字段名称“test_field”

标签: djangometa

解决方案


我同意威廉的观点,即可靠性和确定性行为存在问题,但这样的事情会起作用:

{field.verbose_name: field for field in model._meta.get_fields()}['Test Field']

推荐阅读