Сегодня у меня была такая же ошибка. Это произошло из-за запутанной (по крайней мере для меня) схемы именования.
Если вы укажете свое промежуточное программное обеспечение следующим образом:
'yourapp.SomeMiddleware'
в файле settings.py и поместите определение класса SomeMiddleware в SomeMiddleware.py в директорию приложения, в которой ваш проект потерпит крах. В этом случае settings.py должен читать:
'yourapp.SomeMiddleware.SomeMiddleware'
лучшим способом было бы использовать общий yourapp / middleware.py для всех определений промежуточного программного обеспечения и использовать его, как это делают промежуточные программы django.contrib, и в этом случае ваш seetings.py должен включать:
'yourapp.middleware.SomeMiddleware'