2009-11-14 76 views

回答

4

出於某種原因,不喜歡我的方式正在導入它。

解決方案:

from django.contrib.auth.views import login 

(r'^login', login, etc.) 
5

,最好使用命名的網址,他們節省了大量的維護工作,在未來,打字擺在首位。

如果您保持url的名稱相同,您可以重命名查看功能,將其移動到不同的應用程序等,您不需要更改模板或使用此URL的其他地方。

在urls.py:

url(r'^login/',path.to.view,name='login',...) 

模板:

<a href="{%url login%}">login here</a> 

的觀點:

login_url = reverse('login') 
+0

非常感謝! – SapphireSun 2009-11-17 00:19:31

+0

不客氣! – Evgeny 2009-11-17 01:06:46

0

我相信,我有一些事情要促成這個問題。

對我來說奇怪的是,我的代碼在我如何使用它的方面有意義,但它不起作用。

如果在我的網址,我嘗試了以下。 helloworld是我的django應用程序名稱。

import helloworld 
... 
url(r'^test', helloworld.views.home1() , name='home'), 

它會產生一個錯誤。即使技術上每件事都是正確的。我已經導入我的應用程序將被自動創建一個Python模塊通過django manage startapp

module' object has no attribute 'views' 

我找到了源代碼,django project site在GitHub上,有一個看看他們是如何做到的進口,在其應用的網址部分。去看看這個項目在github上。它是大型項目實施的極好參考。那裏有很多東西需要學習。 https://github.com/django/djangoproject.com

這是他們如何做他們的進口和網址配置。

from accounts import views as account_views 
... 
url(r'^~(?P<username>[\w-]+)/$', account_views.user_profile, name='user_profile'), 

所以我修改了代碼,類似

import helloworld.views as helloView 
... 
url(r'^test', helloView.home1 , name='home'), 

某事,這是最有可能有些事情與應用程序/項目/ Python的命名空間。我不完全確定。但是我的代碼按預期工作,我仍然可以在各自的名稱空間中使用不同的應用程序。我只需要確保import app.view as somename在app/project/python命名空間方案中是唯一的。

相關問題