You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django报错:book()收到意外关键字参数'name',求解决方案

报错:book() got an unexpected keyword argument 'name' 原因及解决方法

问题原因

你在views.py里定义了名为book的视图函数,同时在models.py里又定义了同名的Model类book。当你在视图函数内部执行book(name=name,...)时,Python会优先调用当前作用域内的视图函数book——但这个视图函数只接受request这一个参数,你传入了name等关键字参数,直接触发了参数不匹配的错误。另外还有个小问题:你获取children参数时拼写错成了childern,后续会引发KeyError。

解决方法

1. 重命名Model类(推荐,符合PEP8规范)

Python类名遵循大驼峰命名法,把models.py里的book类改成Book,再在视图里导入使用新类名:

修改后的models.py:

# Create your models here.
class Book(models.Model):
    name=models.CharField(max_length=100)
    email=models.EmailField(max_length=100)
    password=models.CharField(max_length=100)
    type=models.CharField(max_length=100)
    ticket_to=models.CharField(max_length=100)
    ticket_from=models.CharField(max_length=100)
    dept_date=models.DateField()
    ret_date=models.DateField()
    adults=models.IntegerField()
    children=models.IntegerField()

修改后的views.py:

from django.http import HttpResponse
from django.shortcuts import render
from .models import Book

def book(request):
    if request.method=='POST':
        name=request.POST['name']
        email=request.POST['email']
        password=request.POST['password']
        type=request.POST['r']
        ticket_from=request.POST['ticket_from']
        ticket_to=request.POST["ticket_to"]
        dept_date=request.POST['dept_date']
        ret_date=request.POST['ret_date']
        adults=request.POST['adults']
        children=request.POST['children']  # 修正拼写错误
        tck=Book(name=name,email=email,password=password,type=type,ticket_from=ticket_from,ticket_to=ticket_to,dept_date=dept_date,ret_date=ret_date,adults=adults,children=children)
        tck.save()
        return HttpResponse("Booked")   
    else:
        return render(request,"book.html")

2. 给Model类取别名(不修改类名的方案)

如果不想改Model类名,在导入时给它加个别名,避免和视图函数冲突:

# 在views.py顶部导入时
from .models import book as BookModel

然后创建实例时用BookModel(...)替代原来的book(...),同时记得修正children的拼写错误。

内容的提问来源于stack exchange,提问作者dhruv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:05:13