我不明白用什么“直接”。
我做了一些关于_meta.get_field_by_name的谷歌研究,并找到了 Given a QS field lookup key, how to find fields type across joins?
但是“ORM的查找”在django中意味着什么?
答案 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&你提问半年后,你已经为自己找到了它:)