2014-02-05 13 views
24

Ich bin neu in Django und versuche eine einfache Gästebuch-Anwendung zu machen, um mich an die Umgebung zu gewöhnen. Ich erhalte die folgenden Fehler gemacht, aber ich kann den Fehler nicht finden:Einfaches Gästebuch django: __init __() braucht 1 Positionsargument aber 2 wurden gegeben

Exception Wert: _ init _() nimmt ein Positions Argument, aber 2 gegeben wurden.

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) 

Der Blick

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 hier die ** ** vollständige Fehlermeldung. –

+2

Ich denke dein Problem von model = Bericht.objects.all(), es sollte Model = Bericht sein oder deine URLs nicht hinzufügen. As_view() – mohd

+1

Das Problem ist nicht in irgendeinem der Code, den du hier zeigst. Sie sollten immer den gesamten Traceback einfügen. Ich vermute, dass das Problem in deinen URLs liegt. –

Antwort

59

In Ihrem urls.py:

Sie fehlen .as_view()

Änderung es zu:

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

Jetzt bekomme ich eine Fehlermeldung, dass Gastenboek nicht definiert ist. – user2583429

+0

Wenn ich: von Gastenboek import *, heißt es, dass es kein Modul namens site gibt. – user2583429

+0

Sie sollten keine Platzhalter verwenden ... versuchen Sie, Gastenboek.views.BerichtListView importieren – Alvaro

Verwandte Themen