def get_joining_columns(self, reverse_join=False):
        """
        Get and return joining columns defined by this foreign key relationship

        :return: A tuple containing the column names of the tables to be
            joined (<local_col_name>, <remote_col_name>)
        :rtype: tuple
        """
        source = self.reverse_related_fields if reverse_join \
            else self.related_fields
        joining_columns = tuple()
        for lhs_field, rhs_field in source:
            lhs_col_name = lhs_field.column
            rhs_col_name = rhs_field.column
            # Test whether
            # - self is the current ForeignKey relationship
            # - self was not auto_created (e.g. is not part of a M2M
            #   relationship)
            if self is lhs_field and not self.auto_created:
                if rhs_col_name == Versionable.VERSION_IDENTIFIER_FIELD:
                    rhs_col_name = Versionable.OBJECT_IDENTIFIER_FIELD
            elif self is rhs_field and not self.auto_created:
                if lhs_col_name == Versionable.VERSION_IDENTIFIER_FIELD:
                    lhs_col_name = Versionable.OBJECT_IDENTIFIER_FIELD
            joining_columns = joining_columns + ((lhs_col_name, rhs_col_name),)
        return joining_columns
def get_joining_columns ( self , reverse_join = False ) : source = self . reverse_related_fields if reverse_join else self . related_fields joining_columns = tuple ( ) for lhs_field , rhs_field in source : lhs_col_name = lhs_field . column rhs_col_name = rhs_field . column if self is lhs_field and not self . auto_created : if rhs_col_name == Versionable . VERSION_IDENTIFIER_FIELD : rhs_col_name = Versionable . OBJECT_IDENTIFIER_FIELD elif self is rhs_field and not self . auto_created : if lhs_col_name == Versionable . VERSION_IDENTIFIER_FIELD : lhs_col_name = Versionable . OBJECT_IDENTIFIER_FIELD joining_columns = joining_columns + ( ( lhs_col_name , rhs_col_name ) , ) return joining_columns
Get and return joining columns defined by this foreign key relationship

        :return: A tuple containing the column names of the tables to be
            joined (<local_col_name>, <remote_col_name>)
        :rtype: tuple