Вы, вероятно, все еще собираетесь нажать БД один раз, чтобы получить запись сеанса, в которой хранится поле user_id. Тогда вам, возможно, придется отступить от ленивой оценки, выполненной в коде django.contrib.auth.middleware. Это не сложно, но вам нужно прочитать код и найти именно ту информацию, которую вы хотите, а затем получить ее, не вызывая никакой магии.
О, и если вы хотите пробраться к объектам Session напрямую, вам придется вызвать session.get_decoded (), чтобы получить диктат. Поле, которое вы хотите (если оно существует) - _auth_user_id.