_meta.get_field_by_name(django)中的直接含义是什么

时间:2012-05-01 03:12:31

标签: django meta

我不明白用什么“直接”。

我做了一些关于_meta.get_field_by_name的谷歌研究,并找到了 Given a QS field lookup key, how to find fields type across joins?

但是“ORM的查找”在django中意味着什么?

1 个答案:

答案 0 :(得分:0)

来自_name_map中Django Options对象的django.db.models.options属性的填充,看起来它与您使用的字段名称是否是在Model中声明的字段有关{1}}或从related name设置创建的名称。我担心我不熟悉相关名称,但代码如下:

for f, model in self.get_all_related_m2m_objects_with_model():
    cache[f.field.related_query_name()] = (f, model, False, True)
for f, model in self.get_all_related_objects_with_model():
    cache[f.field.related_query_name()] = (f, model, False, False)
for f, model in self.get_m2m_with_model():
    cache[f.name] = (f, model, True, True)
for f, model in self.get_fields_with_model():
    cache[f.name] = (f, model, True, False)
for f in self.virtual_fields:
    if hasattr(f, 'related'):
        cache[f.name] = (f.related, None if f.model == self.model else f.model, True, False)

因此,您只能看到前两个for循环使用direct作为False的条目填充缓存,并使用related_query_name。也许其他人可以更多地了解它,或者更有可能在2&你提问半年后,你已经为自己找到了它:)