无法访问rosetta

时间:2017-06-13 10:45:09

标签: python django django-urls django-rosetta

版本:

  • Python 3.5.1
  • Django 1.10
  • django-rosetta 0.7.13

The installation guide告诉您将以下内容添加到您的项目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 个答案:

答案 0 :(得分:0)

搜索该问题会显示one apparently has to import it

from django.conf.urls import patterns

但它仍然没有用。

ImportError: cannot import name 'patterns'

此功能was removed in django 1.10。但是,可以使用这种方法有条件地添加rosetta URL:

from django.conf import settings

if 'rosetta' in settings.INSTALLED_APPS:
    urlpatterns.append(url(r'^rosetta/', include('rosetta.urls')))

但是,如果您尝试访问网址http://127.0.0.1:8000/rosetta/上的rosetta,可能会惊讶地发现您仍然获得了404 Page not found

所以包含的模式似乎无法正常工作。但他们是。问题是,在访问rosetta页面时可能必须登录(可能是员工/超级用户?),这是一个隐藏的要求。所以,只需转到http://127.0.0.1:8000/admin/,登录,然后再次转到rosetta网址。现在应该可以了。

安装确实注意到了这一点:

  

因为Rosetta需要对您的某些文件进行写访问   Django项目,访问应用程序仅限于   仅限管理员用户(在项目的管理界面中定义)

如果您尚未登录,它如何知道您是管理员?它没有,显然不是提供信息错误,而是完全忽略了rosetta网址。