【问题标题】:Can not create new object - create() takes exactly 1 argument (2 given)无法创建新对象 - create() 只需要 1 个参数(给定 2 个)
【发布时间】:2011-01-28 11:55:54
【问题描述】:

我正在尝试从表单提供的值创建新对象。代码如下:

def issue_save(request):
    issue = Issue.objects.create(IssueForm(request.POST))
    issue.save(commit=True)
    return HttpResponseRedirect(reverse("main.views.index"))

这是我得到的错误:

/problemy/pridat/ulozit/处的类型错误
create() 只需要 1 个参数(给定 2 个)
请求方法:POST
请求网址:http://localhost:8000/problemy/pridat/ulozit/
Django 版本:1.2.3
异常类型:TypeError
异常值:
create() 只需要 1 个参数(给定 2 个) 异常位置:views.py in issue_save,第 20 行

第 20 行代码:

issue = Issue.objects.create(IssueForm(request.POST))

我真的被困在这里了。

【问题讨论】:

    标签: django


    【解决方案1】:

    您没有告诉我们IssueForm 到底是什么。如果是ModelForm,你可以使用它的.save 方法:

    IssueForm(request.POST).save()
    

    如果是正则形式,请使用:

    issue = Issue.objects.create(**IssueForm(request.POST).cleaned_data)
    

    注意:** 是参数解包(参见here

    【讨论】:

    • 如果它不是 ModelForm,它应该是,因为 OP 正在尝试直接从它创建模型实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2017-09-15
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2012-03-07
    相关资源
    最近更新 更多