Django form正在抛出错误:“只接受1个参数(给定0个参数)”

2024-09-29 00:15:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理从模型创建的基本事件表单,但我不断收到以下错误消息:

TypeError at /addlaundry/
addlaundry() takes exactly 1 argument (0 given)

我认为这是因为我没有把论点传递到观点上,但我找不到任何地方的文件来证明如何正确地做这件事,至少没有以我理解的方式来写。

这是我的url.py:

urlpatterns = patterns('',
    url('^addlaundry/$', 'beacon.laundry.views.addlaundry'),
}

以及观点本身:

# 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,
    })

我的观点是否确实结构错误,或者我遗漏了什么?如果有文件我需要阅读,我想我只是没有找到它,但觉得我错过了一些基本的东西。

谢谢

迈克尔


Tags: 文件模型formurl表单returnifrequest
3条回答

您的视图称为addlaundry,它调用(可能)另一个称为addlaundry的东西。重命名其中一个,或者在其名称空间内使用另一个addlaundry

这是你的问题:

 form = addlaundry()

这是试图调用视图本身!那不是你想要的。您需要定义一个表单类并在这里调用(实例化)。

问题在于:

form = addlaundry()

您正在调用视图函数addlaundry,它接受一个必需的参数(request),但您没有向它传递任何参数。

当然,无论如何,这不是构造表单的正确方法。您将需要查看Django forms documentation中给出的示例,了解如何在Django中创建和使用表单。

相关问题 更多 >