Нет доступа к розетте
Версии:
- Python 3.5.1
- Джанго 1.10
- Джанго Розетта 0.7.13
Руководство по установке говорит вам добавить следующее к вашему проекту settings.py
:
from django.conf import settings
if 'rosetta' in settings.INSTALLED_APPS:
urlpatterns += patterns('',
url(r'^rosetta/', include('rosetta.urls')),
)
Тем не менее, это просто приводит к ошибке:
NameError: name 'patterns' is not defined
1 ответ
Поиск этой проблемы показывает, что, очевидно, нужно ее импортировать:
from django.conf.urls import patterns
Но все равно это не работает.
ImportError: cannot import name 'patterns'
Эта функция была удалена в Django 1.10. Тем не менее, можно добавить URL розетки условно, используя этот подход:
from django.conf import settings
if 'rosetta' in settings.INSTALLED_APPS:
urlpatterns.append(url(r'^rosetta/', include('rosetta.urls')))
Однако, если вы попытаетесь получить доступ к rosetta по адресу http://127.0.0.1:8000/rosetta/ вы можете быть удивлены, обнаружив, что вы все еще получаете 404 Page not found
,
Таким образом, кажется, что включенные шаблоны не работают должным образом. Но они. Проблема в том, что существует скрытое требование, что необходимо войти в систему при доступе к странице розетки (возможно, с сотрудником / суперпользователем?). Итак, просто зайдите на http://127.0.0.1:8000/admin/, войдите в систему, а затем снова перейдите к URL-адресу розетки. Теперь это должно работать.
Установка замечает это, вроде:
Поскольку Rosetta требует доступа на запись к некоторым файлам в вашем проекте Django, доступ к приложению ограничен только администратором (как определено в интерфейсе администратора вашего проекта)
Как он узнал, что вы администратор, если вы не вошли в систему? Это не так, и, по-видимому, вместо того, чтобы давать информативную ошибку, он полностью игнорирует URL-адреса розетт.