2013-12-11 70 views
0

我已經繼承了python/django web應用程序,我試圖在新機器上工作。在機器1(原件)上,每個下拉菜單鏈接都能正常工作並且不會導致錯誤。在機2臺,其中Web應用程序複製到新的機器,一個下拉菜單鏈接導致以下錯誤:NoReverseMatch在/門戶/

Exception Type:  NoReverseMatch 
Exception Value: Reverse for 'account_index' with arguments '()' and keyword arguments '{}' not found. 

錯誤指的是所謂的「基礎site.html」 HTML模板文件。客戶端下拉菜單與帳戶下拉菜單具有相同的代碼。在機器1上都工作,在機器2上,帳戶一出錯。下面的Python應用程序的摘錄顯示代碼培訓相關的下拉菜單...

對於帳戶下拉

From base-site.html: <li><a tabindex="-1" href="{% url 'account_index' %}">Browse</a></li> 
From account urls.py: url(r'^/?$', 'account.views.account_index', name='account_index'), 

對於客戶端下拉

From base-site.html: <li><a tabindex="-1" href="{% url 'client_index' %}">Browse</a></li> 
From client urls.py: url(r'^$', 'client.views.client_index', name='client_index'), 

有人能說明爲什麼該帳戶下拉菜單會工作在機器1上而不是在機器2上?如何解決這個問題,以便它可以在兩臺機器上工作?它可能是.pyc文件從1複製到2的副本?

+0

Django的是完全相同的,並在兩臺機器上所有其他第三方模塊的版本之前刪除的文件PYC? –

+1

至於.pyc,爲什麼不用一些源代碼管理(svn,hg,git等)進行正常的部署而不是複製整個內容?這對我來說似乎非常容易出錯並且效率低下。 –

+0

Python/Django/Apache等在兩臺機器上都是一樣的。我們的目標是安裝apache/python/django等應用程序,然後我們可以放下應用程序文件夾並以最小的工作量工作。 –

回答

0

顯示錯誤的機器在使用django 1.4時需要使用django 1.5。 url模板方案在版本之間改變,並且不向後兼容(不幸的是)。

pip install django==1.5 

此外,重新啓動開發服務器

find . -name "*pyc" | xargs rm 
+0

啊,沒有。在兩臺機器上檢查過的Django版本都報告1.5.1 final。也正如我所說的完全相同的代碼/ python /工具/模塊在機器1上工作,但這一塊在機器2上失敗。 –