Python 简单的留言板 django:__init__() 需要 1 个位置参数,但给出了 2 个
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 
原文地址: http://stackoverflow.com/questions/21586883/
Warning: these are provided under cc-by-sa 4.0 license.  You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Simple guestbook django: __init__() takes 1 positional argument but 2 were given
提问by user2583429
I'm new to Django and trying to make a simple guestbook application to get used to the environment. I get the following mistake, but I can't locate the error:
我是 Django 的新手,正在尝试制作一个简单的留言簿应用程序以适应环境。我收到以下错误,但我找不到错误:
Exception Value: _init_() takes 1 positional argument but 2 were given.
异常值:_ init_() 接受 1 个位置参数,但给出了 2 个。
from django.db import models
from django.contrib.auth.models import User
from django.contrib import admin
class Bericht(models.Model):
    titel = models.CharField(max_length=50)
    auteur = models.ForeignKey(User, blank=True)
    email = models.EmailField(max_length=75)
    inhoud = models.TextField(max_length=10000, blank=True)
    datum = models.DateTimeField(auto_now_add=True)
    def __str__(self):
        return str(self.auteur) + " : " + str(self.titel)
    class Meta:
        verbose_name_plural = "berichten"
class BerichtAdmin(admin.ModelAdmin):
    list_display = ["auteur", "datum", "titel"]
    list_filter = ["datum", "auteur"]
admin.site.register(Bericht, BerichtAdmin)
The view
风景
from django.shortcuts import render
from django.views.generic import ListView
from Gastenboek.models import *
class BerichtListView(ListView):
    model = Bericht.objects.all()
    template_name = 'template/bericht_lijst.html'
    paginate_by = 10
    context_object_name = "bericht_lijst"
# Create your views here.
urls.py
网址.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'Niels.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),
    url(r'^admin/', include(admin.site.urls)),
    (r"^(\d+)/$", 'Gastenboek.views.BerichtListView'),
    (r"", 'Gastenboek.views.BerichtListView'),
)
Traceback
追溯
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/
Django Version: 1.6.1
Python Version: 3.3.3
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'Gastenboek')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickHymaning.XFrameOptionsMiddleware')
Traceback:
File "C:\Python33\lib\site-packages\django\core\handlers\base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
Exception Type: TypeError at /
Exception Value: __init__() takes 1 positional argument but 2 were given
回答by Alvaro
In your urls.py:
在你的 urls.py 中:
You are missing .as_view()
你缺少 .as_view()
change it to:
将其更改为:
(r"^(\d+)/$", Gastenboek.views.BerichtListView.as_view()),
(r"", Gastenboek.views.BerichtListView.as_view()),

