Django form wirft Fehler: "dauert genau 1 argument (0 given)"
Ich arbeite an einer grundlegenden Veranstaltung bilden ein Modell, aber ich erhalte immer folgende Fehlermeldung:
TypeError at /addlaundry/
addlaundry() takes exactly 1 argument (0 given)
Ich denke, es ist weil ich bin nicht durch das argument durch, die auf Ansichten, aber ich kann nicht finden, irgendwo dokumentiert, wie Sie dieses Recht tun, zumindest nicht in einer Weise geschrieben, die ich verstehe.
Hier ist meine urls.py:
urlpatterns = patterns('',
url('^addlaundry/$', 'beacon.laundry.views.addlaundry'),
}
Und der Blick auf sich selbst:
# Create your views here.
from schedule.views import EventForm
def addlaundry(request):
if request.method == 'POST':
form = EventForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/thanks/') #redirect after succesfully adding new delivery
else:
form = addlaundry()
return render_to_response('newlaundry.html', {
'form': form,
})
Muss ich ja meine Ansichten falsch strukturiert, oder übersehe ich etwas anderes? Wenn es Unterlagen, die ich Lesen müssen, bis ich will ich nur noch nicht gefunden, aber das Gefühl, ich bin fehlt etwas grundlegendes.
Dank,
Michael
- So einfach, ich schäme mich. Vielen Dank für alle Hinweise.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist hier:
Die Sie aufrufen Ihrer anzeigen-Funktion
addlaundry
nimmt 1 argument (request
), aber Sie sind nicht vorbei, es keine Argumente.Natürlich, das ist nicht der richtige Weg zu konstruieren, eine form, sowieso. Sie wollen einen Blick auf die Beispiele in der Django Formulare-Dokumentation zu sehen, wie zum erstellen und verwenden von Formularen in Django.
Ihrer Ansicht aufgerufen wird
addlaundry
, und es ruft (vermutlich) etwas anderes genanntaddlaundry
. Umbenennen einer von Ihnen, oder verwenden Sie die anderenaddlaundry
aus dem inneren der namespace.Dies ist Ihr problem:
Dass der Versuch, rufen Sie die Ansicht selbst! Das ist nicht, was Sie wollen. Sie müssen definieren, eine form-Klasse, und rufen Sie (instanziieren) es hier.
views.py :
Das bedeutet :
Auch in urls.py Ihre Sicht sollte nicht ein string sein.
Nur als Ausnahme, sagt: Die view-Funktion muss 1 argument, es aber nicht liefern.