0

版本:

  • Python 3.5.1
  • 姜戈 1.10
  • django-rosetta 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
4

1 回答 1

0

搜索该问题表明显然必须导入它

from django.conf.urls import patterns

但它仍然不起作用。

ImportError: cannot import name 'patterns'

此功能已在 django 1.10 中删除。但是,可以使用这种方法有条件地添加rosetta url:

from django.conf import settings

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

但是,如果您尝试通过 URL http://127.0.0.1:8000/rosetta/访问 Rosetta,您可能会惊讶地发现您仍然得到一个404 Page not found.

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

安装确实注意到了这一点,如下所示:

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

如果您没有登录,它如何知道您是管理员?它没有,显然它没有给出信息性错误,而是完全忽略了rosetta url。

于 2017-06-13T10:45:09.090 回答