2014-02-05 3 views
24

Я новичок в Django и пытаюсь создать простую приложение для гостевой книги, чтобы привыкнуть к среде. Я получаю следующую ошибку, но я не могу найти ошибку:Простая гостевая книга django: __init __() принимает 1 позиционный аргумент, но 2 даны

Exception Значение: _ инициализации _() занимает 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) 

Вид

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

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.clickjacking.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 
+1

Paste то здесь ** ** полное сообщение об ошибке. –

+2

Я думаю, что ваша проблема из модели = Bericht.objects.all(), это должна быть модель = Bericht или ваши URL-адреса, не добавляющие .as_view() – mohd

+1

Проблема не в том коде, который вы здесь показываете. Вы всегда вставляете полную трассировку. Я подозреваю, что проблема в вашем urls.py. –

ответ

59

В вашем urls.py:

У вас не хватает .as_view()

изменить его:

(r"^(\d+)/$", Gastenboek.views.BerichtListView.as_view()), 
(r"", Gastenboek.views.BerichtListView.as_view()), 
+0

Теперь я получаю сообщение об ошибке Gastenboek не определено – user2583429

+0

Когда я делаю: из импорта Gastenboek *, в нем говорится, что нет модуля с именем site. – user2583429

+0

Вы не должны использовать подстановочные знаки ... попробуйте импортировать Gastenboek.views.BerichtListView – Alvaro

Смежные вопросы