我刚刚安装了userena,并在示例中使用了该示例,但是当我在URLS.py中添加一行时,我收到了一个错误。在下面的示例中,我添加了映射来自views.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 :(得分: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')),
)
或者将第一个参数中的模块命名为patterns()
的字符串urlpatterns = patterns('accounts.views',
url(r"^$", 'home'),
url(r'^admin/', include(admin.site.urls)),
(r'^accounts/', include('userena.urls')),
)
答案 1 :(得分:0)
问题是我忘了在回复渲染中包含请求。
答案 2 :(得分:0)
正确答案是render
被错误地调用。实际上,views.py文件会引发一个SyntaxError,但是我们会让它滑动:)
# views.py
from django.shortcuts import render
def home(request):
return render(request, 'homepage.html')