1
我不明白「direct」用於什麼。_meta.get_field_by_name(django)中的direct是什麼意思
我做了一些谷歌的研究有關_meta.get_field_by_name,發現 Given a QS field lookup key, how to find fields type across joins?
但到底是什麼「的ORM的查找」在Django是什麼意思?
我不明白「direct」用於什麼。_meta.get_field_by_name(django)中的direct是什麼意思
我做了一些谷歌的研究有關_meta.get_field_by_name,發現 Given a QS field lookup key, how to find fields type across joins?
但到底是什麼「的ORM的查找」在Django是什麼意思?
從Django上Options
對象_name_map
屬性的人口django.db.models.options
,看起來它是依賴於你所使用的字段名是否是與建立一個related name
創建了Model
或名稱聲明的字段。我怕我不熟悉相關名稱的東西,但代碼如下:
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
。也許別人可以從中發現更多的信息,或者更可能在你問了以後的半年中,你已經明白了:)