2014-09-20 63 views
0

我剛剛安裝了userena,並從本教程開始學習示例,但只要我在URLS.py中的一行中添加,就會出現錯誤。在下面的例子中,我添加了從view.py在這個例子中,我的urls.py有什麼問題?

映射home行的線現在我遇到的問題是,當我去127.0.0.1/8000,我得到TypeError:字符串不可調用,但然後奇怪的是,如果我去帳戶/註冊或帳戶/登錄,我得到應該出現的模板,如果我去127.0.0.1/8000。

from django.conf import settings 
from django.conf.urls import patterns, include, url 
from django.conf.urls.static import static 
from django.views.generic import TemplateView 
from accounts import views 
from django.contrib import admin 
admin.autodiscover() 


urlpatterns = patterns('', 
    url(r"^$", 'home'), 

    url(r'^admin/', include(admin.site.urls)), 
    (r'^accounts/', include('userena.urls')), 
) 

這裏是我的賬戶/ views.py

from django.shortcuts import render 
from django.http import HttpResponseRedirect 

def home(request): 

return render('homepage.html') 

回答

0

您需要刪除的網址並導入瀏覽

from accounts.views import home 

urlpatterns = patterns('', 
    url(r"^$", home), 

    url(r'^admin/', include(admin.site.urls)), 
    (r'^accounts/', include('userena.urls')), 
) 

可以用鋼琴絃在引號url(),但必須使用格式'app.views.viewname'

urlpatterns = patterns('', 
    url(r"^$", 'accounts.views.home'), 

    url(r'^admin/', include(admin.site.urls)), 
    (r'^accounts/', include('userena.urls')), 
) 

或名稱的第一個參數字符串模式的模塊()

urlpatterns = patterns('accounts.views', 
    url(r"^$", 'home'), 

    url(r'^admin/', include(admin.site.urls)), 
    (r'^accounts/', include('userena.urls')), 
) 
+0

現在我在/ STR對象獲取AttributeError的有沒有屬性META – stephan 2014-09-20 03:14:58

+0

這是另外一個問題,在粘貼回溯你的請問。 – elmonkeylp 2014-09-20 04:11:48

+0

不,使用虛線名稱仍然有效。它在1.8版中已棄用,但仍有可能仍使用此表單。 – 2014-09-20 05:32:48

0

的問題是我忘了,包括在返回渲染請求。

0

正確答案是render被錯誤地調用。事實上,views.py文件將提高一個SyntaxError,但我們將讓該幻燈片:)

# views.py 
from django.shortcuts import render 

def home(request): 
    return render(request, 'homepage.html')