Django错误中关于页面的***

Posted

技术标签:

【中文标题】Django错误中关于页面的***【英文标题】:Top-level about Page in Django error 【发布时间】:2015-03-16 10:26:47 【问题描述】:

我想在我的 Django 站点 (eg: http://127.0.0.1:8000/about) 中有一个*** about 页面,该页面指向基于民意调查应用程序中关于视图的类或*** about 页面,但是我得到了:

TypeError at /about/
__init__() takes 1 positional argument but 2 were given

我的站点/我的站点/urls.py:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    # Examples:
    url(r'^$', 'myPollSite.views.index', name='myPollSite_home'),
    url(r'^about/$', 'myPollSite.views.AboutView', name='myPollSite_about'),
    url(r'^polls/', include('polls.urls', namespace = "polls")),
    url(r'^admin/', include(admin.site.urls)),

]

MySite/Mysite/views.py:

from django.shortcuts import render
from django.http import HttpResponse
from django.views import generic

class AboutView(generic.TemplateView):
    template_name = "polls/about.html"


def index(request):
    return HttpResponse("Hello, world. You're at myPollSite index.")

MySite/polls/template/polls/about.html:

<h1>About Page</h1>
<h2>Implemented with TemplateView</h2>
<p>
    No Model Data can be retrieved with Template View
</p>

【问题讨论】:

你的网址应该是这样的:myPollSite.views.AboutView.as_view() 【参考方案1】:

按照documentation 中的建议,使用as_view() 调用配置基于类的视图:

url(r'^about/$', AboutView.as_view(), name='myPollSite_about'),

应该在哪里导入AboutView

from myPollSite.views import AboutView

【讨论】:

AboutView.as_view() 有效,但是当我使用 myPollSite.views.AboutView.as_view() 时,为什么会出现 NameError: "myPollSite" is not defined? @jerryh91 我认为您应该刚刚导入了myPollSite。应该可以作为我提供的选项。

以上是关于Django错误中关于页面的***的主要内容,如果未能解决你的问题,请参考以下文章

在 django web 应用程序上注销会重定向到 django 管理员注销页面。这是怎么回事?

将 Django 表单资产(媒体类)与清晰表单一起使用时,页面中不包含 .js 文件

java中关于页面弹出对话框问题

mvc3中关于Razor视图中的及页面区别,以及在啥情况下用哪个页面,最好能有实例。

FancyBox 从 iframe 中关闭并将父页面带到链接

Django2.2 报错信息无法正常在页面显示