2017-06-13 63 views
0

版本:無法訪問羅塞塔

  • 的Python 3.5.1
  • Django的1.10
  • Django的羅塞塔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 

回答

0

搜索這個問題表明one apparently has to import it

from django.conf.urls import patterns 

但還是不起作用。

ImportError: cannot import name 'patterns' 

此功能was removed in django 1.10。但是,可以添加羅塞塔網址有條件使用這種方法:

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/訪問羅塞塔你可能會驚訝地發現,你仍然可以得到一個404 Page not found

因此,似乎包含的模式工作不正常。但他們是。問題是有一個隱藏的要求,即在訪問rosetta頁面時可能需要登錄(可能有員工/超級用戶?)。因此,只需轉到http://127.0.0.1:8000/admin/,登錄,然後再次轉到rosetta網址。現在它應該工作。

安裝時注意這一點,有點:

Because Rosetta requires write access to some of the files in your Django project, access to the application is restricted to the administrator user only (as defined in your project’s Admin interface)

它是如何知道你是管理員,如果您還沒有登錄?它沒有,而且顯然不是提供一個信息錯誤,而是完全忽略了羅塞塔網站。