【问题标题】:Cannot access rosetta无法访问罗塞塔
【发布时间】:2017-11-15 02:27:23
【问题描述】:

版本:

  • 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

【问题讨论】:

    标签: python django django-urls django-rosetta


    【解决方案1】:

    搜索那个问题发现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')))
    

    但是,如果您尝试通过 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。

    【讨论】:

      猜你喜欢
      • 2013-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-22
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多