Django modelform未保存
我用谷歌搜索了一下这里的其他主题。我的表格仍然没有保存 看法 模板Django modelform未保存,django,django-models,django-views,Django,Django Models,Django Views,我用谷歌搜索了一下这里的其他主题。我的表格仍然没有保存 看法 模板 {% extends 'base.html' %} {% load crispy_forms_tags %} {% block content %} <h1>New Apprentice</h1> <form action="" method="POST" enctype="multipart/form-data">
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<h1>New Apprentice</h1>
<form action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.name|as_crispy_field }}
</div>
<div class="form-group col-md-6 mb-0">
{{ form.email|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.role|as_crispy_field }}
</div>
<div class="form-group col-md-6 mb-0">
{{ form.cost|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.p_name|as_crispy_field }}
</div>
<div class="form-group col-md-6 mb-0">
{{ form.p_time|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.division|as_crispy_field }}
</div>
<div class="form-group col-md-6 mb-0">
{{ form.line_manager|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-4 mb-0">
{{ form.on_course|as_crispy_field }}
</div>
<div class="form-group col-md-4 mb-0">
{{ form.finished_course|as_crispy_field }}
</div>
<div class="form-group col-md-4 mb-0">
{{ form.left_course|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.start_date|as_crispy_field }}
</div>
<div class="form-group col-md-6 mb-0">
{{ form.finish_date|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-12 mb-0">
{{ form.notes|as_crispy_field }}
</div>
</div>
<button type="submit" class="btn btn-success">Save</button>
<a href="/apprentices/" class="btn btn-secondary">Back</a>
</form>
{% endblock %}
当我点击save时,实际上什么也没发生。没有重定向,没有错误。这将在控制台中打印[05/Oct/2020 12:58:13]“POST/peedites/newpeedient/HTTP/1.1”200 12188
如您所见,我在视图中打印了request.POST
,查看表单字段中填充的所有数据是否都存在,是否都存在。刚才我点击保存。什么也没发生
有什么想法吗??谢谢表格无效。如果它是有效的,它将保存对象。但是,即使
form.save()
不会产生预期的副作用,重定向(…)
调用也会产生302响应代码,而不是200响应代码
您可以使用以下选项打印表单错误:
def newapprentice(request):
form = NewApprenticeForm()
if request.method == 'POST':
form = NewApprenticeForm(request.POST)
if form.is_valid():
form.save()
return redirect('apprentices/index.html')
print(form.errors) # ← print errors in the console
return render(request, 'apprentices/newapprentice.html', {'form': form})
该表单无效。如果
表单
有效,它将返回一个302(重定向),而不是一个200(呈现页面)。您可以在重定向(…)
下打印(form.errors)
(因此在内部If
正文之外)。我知道了,谢谢。这是我返回的错误- 部门
- 此字段是必需的。
- 创建日期
- 此字段是必需的。
@IanProbets:看起来您的新学徒表单
有一个部门字段,但是这在呈现的表单中不存在,因此您应该在模板中添加{form.dept | as_crisply_field}
。
from django.forms import ModelForm
from .models import Apprentice
class NewApprenticeForm(ModelForm):
class Meta:
model = Apprentice
fields = '__all__'
def newapprentice(request):
form = NewApprenticeForm()
if request.method == 'POST':
form = NewApprenticeForm(request.POST)
if form.is_valid():
form.save()
return redirect('apprentices/index.html')
print(form.errors) # ← print errors in the console
return render(request, 'apprentices/newapprentice.html', {'form': form})
{{ form.name.errors }}
<div class="form-group col-md-6 mb-0">
{{ form.name|as_crispy_field }}
</div>
{{ form.dept.errors }}
<div class="form-group col-md-6 mb-0">
{{ form.dept|as_crispy_field }}
</div>