我不明白“直接”是用来做什么的。
我做了一些关于 _meta.get_field_by_name 的谷歌研究,发现 给定一个 QS 字段查找键,如何跨连接查找字段类型?
但是“ORM 的查找”在 django 中是什么意思?
我不明白“直接”是用来做什么的。
我做了一些关于 _meta.get_field_by_name 的谷歌研究,发现 给定一个 QS 字段查找键,如何跨连接查找字段类型?
但是“ORM 的查找”在 django 中是什么意思?
_name_map
从DjangoOptions
对象中属性的填充来看django.db.models.options
,它看起来与您使用的字段名称是在您的字段中声明的字段还是从设置中Model
创建的名称有关。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
asFalse
和使用的条目填充缓存related_query_name
。也许其他人可以在您询问后的 2 年和 1/2 年内更清楚地了解它,或者更有可能,您已经自己弄清楚了:)