def related(cls): id_column = getattr(cls, id_label) related_id_column = getattr(related_model, related_id_label) filters = [foreign(id_column) == related_id_column] if cycle_label: cycle_column = getattr(cls, cycle_label) related_cycle_column = getattr(related_model, related_cycle_label) filters.append(cycle_column == related_cycle_column) return db.relationship( related_model, primaryjoin=sa.and_(*filters), )
def related(cls): id_column = getattr(cls, id_label) related_id_column = getattr(related_model, related_id_label) filters = [foreign(id_column) == related_id_column] if cycle_label: cycle_column = getattr(cls, cycle_label) if use_modulus: cycle_column = cycle_column + cycle_column % 2 related_cycle_column = getattr(related_model, related_cycle_label) filters.append(cycle_column == related_cycle_column) return db.relationship( related_model, primaryjoin=sa.and_(*filters), )