由于意外参数,django 模型无法创建或保存

django model can not create or save because of unexpected arguments

我想通过这些参数插入行。 但由于异常写入的错误而失败。

这是玛特的模型

这是Mart的形式

简而言之:请不要给你的表格取与你的模型相同的名字。你在这里介绍了一个“name clash”。这意味着 Mart(name=…, address=…, …) 中的 Mart 指的是 形式 ,而不是模型。

而且你自己写的样板代码太多了。我建议将您的 Mart 表单 class 重命名为 MartForm:

# app/forms.py

from app.models import Mart

class <b>MartForm</b>(forms.ModelForm):
    class Meta:
        model = Mart
        fields = ['name', 'address', 'tell', 'phone']

在您看来,您可以这样调用它:

# app/views.py

from app.forms import MartForm

def register_mart(request):
    if request.method == 'POST':
        form = MartForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect(<i>'name-of-view'</i>)
    else:
        form = MartForm()
    return render(request, 'mobileWeb/admin/register_mart.html', {'form': form})

额外的错误:

  1. form.is_valid(),不是form.is_valid
  2. 您可以使用 form.save() 保存您的表单,无需自己将所有内容包装在模型对象中;和
  3. 您需要在成功后重定向 post 以实施 Post/Redirect/Get pattern [wiki]