コード例 #1
0
    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
コード例 #2
0
ファイル: generic.py プロジェクト: chrisglass/django
 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)
コード例 #3
0
 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
コード例 #4
0
ファイル: fields.py プロジェクト: Alexggp/BaresHeroku
 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)]
コード例 #5
0
ファイル: fields.py プロジェクト: Alexggp/BaresHeroku
 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)]
コード例 #6
0
ファイル: fields.py プロジェクト: toledo1566/django
 def get_path_info(self):
     opts = self.rel.to._meta
     target = opts.pk
     return [
         PathInfo(self.model._meta, opts, (target, ), self.rel, True, False)
     ]