Решить такой вопрос независимо от языка и фреймворка - это конечно та еще задачка.
Лично у меня в SQLAlchemy нужно создать класс-связь, потому что SQLAlchemy почти ничего из SQL не скрывает, просто оборачивает SQL в синтаксис питона.
А вот Джанга вроде бы сама тайком связующие таблицы делает, и сама джоны пишет когда запрос генерирует.