У меня возникла такая же проблема:
- SCRIPT_NAME, определенный в моей конфигурации apache
- вызов
django.core.urlresolvers.reverse
за пределами wsgi
не предшествовал префиксу - в любом представлении или ресурсе, при вызове того же метода добавляется префикс
Мне удалось автоматически добавить префикс, используя следующие строки кода:
# in settings.py
from django.core.urlresolvers import set_script_prefix
...
FORCE_SCRIPT_NAME = "your-prefix"
set_script_prefix(FORCE_SCRIPT_NAME)
...
Первая строка гарантирует, что ваш wsgi использует ваш префикс каждый раз.Второй задает префикс, так что reverse
найдет его.
Обратите внимание, что вам нужно иметь такой же префикс в вашем apache conf.Это немного избыточно, но я нашел более чистое исправление.