由于意外参数,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})
额外的错误:
- 是
form.is_valid()
,不是form.is_valid
- 您可以使用
form.save()
保存您的表单,无需自己将所有内容包装在模型对象中;和
- 您需要在成功后重定向 post 以实施 Post/Redirect/Get pattern [wiki]。
我想通过这些参数插入行。 但由于异常写入的错误而失败。
这是玛特的模型
这是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})
额外的错误:
- 是
form.is_valid()
,不是form.is_valid
- 您可以使用
form.save()
保存您的表单,无需自己将所有内容包装在模型对象中;和 - 您需要在成功后重定向 post 以实施 Post/Redirect/Get pattern [wiki]。