def _get_gfk_case_path_info(self, direct=False): pathinfos = [] from_field = self.model._meta.pk opts = self.through._meta object_id_field = opts.get_field_by_name('object_id')[0] linkfield = self.through._meta.get_field_by_name( self.m2m_reverse_field_name())[0] if direct: join1infos = [ PathInfo(from_field, object_id_field, self.model._meta, opts, self, True, False) ] join2infos, opts, target, final = linkfield.get_path_info() else: join1infos, _, _, _ = linkfield.get_reverse_path_info() join2infos = [ PathInfo(object_id_field, from_field, opts, self.model._meta, self, True, False) ] target = from_field final = self opts = self.model._meta pathinfos.extend(join1infos) pathinfos.extend(join2infos) return pathinfos, opts, target, final
def _get_gfk_case_path_info(self, direct=False): pathinfos = [] from_field = self.model._meta.pk opts = self.through._meta object_id_field = opts.get_field_by_name('object_id')[0] linkfield = self.through._meta.get_field_by_name(self.m2m_reverse_field_name())[0] if direct: join1infos = [PathInfo(self.model._meta, opts, [from_field], self.rel, True, False)] join2infos = linkfield.get_path_info() else: join1infos = linkfield.get_reverse_path_info() join2infos = [PathInfo(opts, self.model._meta, [object_id_field], self, True, False)] pathinfos.extend(join1infos) pathinfos.extend(join2infos) return pathinfos
def get_reverse_path_info(self): opts = self.model._meta from_opts = self.rel.to._meta return [ PathInfo(from_opts, opts, (opts.pk, ), self, not self.unique, False) ]
def get_path_info(self): from_field = self.model._meta.pk opts = self.rel.to._meta target = opts.get_field_by_name(self.object_id_field_name)[0] # Note that we are using different field for the join_field # than from_field or to_field. This is a hack, but we need the # GenericRelation to generate the extra SQL. return ([ PathInfo(from_field, target, self.model._meta, opts, self, True, False) ], opts, target, self)
def get_path_info(self): opts = self.rel.to._meta target = opts.get_field_by_name(self.object_id_field_name)[0] return [PathInfo(self.model._meta, opts, (target,), self.rel, True, False)]
def get_path_info(self): opts = self.rel.to._meta target = opts.pk return [ PathInfo(self.model._meta, opts, (target, ), self.rel, True, False) ]