Django得到相关模型的名称无法识别`rel`属性

时间:2018-06-14 16:32:36

标签: python django

我正在尝试使用模型字段的某些属性创建字典,因此我按照this question的答案获取ForeignKey字段引用的模型的名称,但是我收到错误{ {1}}。

这是我的代码:

AttributeError: 'ForeignKey' object has no attribute 'rel'

我找不到我错过的东西。

1 个答案:

答案 0 :(得分:1)

您需要直接使用get_fields来检索模型的字段实例,这样可以简化您的代码。

def get_fields_meta(model, field_names):
    fields_meta = []
    fields = [f for f in model._meta.get_fields(include_hidden=True) if f.name in field_names]

    for field in fields:
        field_meta = {}

        field_meta['name'] = field.name
        field_meta['title'] = force_text(field.verbose_name)
        field_meta['type'] = field.get_internal_type()
        if field_meta['type'] == 'ForeignKey':
            field_meta['rel_model'] = field.remote_field.model
        field_meta['null'] = field.null
        field_meta['max_legth'] = field.max_length

        fields_meta.append(field_meta)

    return fields_meta