python - 如何做到这一点,如果表单中有错误,我在字段中键入的所有数据都会保留,并且只会弹出错误
问题描述
如何做到这一点,如果表单中有错误,我在字段中键入的所有数据都会保留下来,并且错误显示让我编辑我需要编辑的内容。
因为如果人们按下提交是非常不友好的,并且他们之前输入的所有内容都必须重新输入,因为错误导致他们需要再次提交表单。
就像我们发布 stackoverflow 问题一样,如果我们的问题中有错误,例如时间限制,我们之前输入的任何内容都会保留
如果您需要更多代码,请告诉我。
html
<form class="create-form" method="post" enctype="multipart/form-data">{% csrf_token %}
<div class="form-group">
<label for="id_title">Title</label>
<input class="form-control" type="text" name="title" id="id_title" placeholder="Title" required autofocus>
</div>
<button class="submit-button btn btn-lg btn-primary btn-block" type="submit">Submit</button>
</form>
{% if form.errors %}
{% for field in form %}
{% for error in field.errors %}
<div class="alert alert-danger">
<strong>{{ error|escape }}</strong>
</div>
{% endfor %}
{% endif %}
视图.py
def create_blog_view(request):
context = {}
user = request.user
if request.method == 'POST':
form = CreateBlogPostForm(request.POST or None, request.FILES or None)
if form.is_valid():
obj.save()
return redirect('HomeFeed:main')
else:
context['form'] = form
return render(request, "HomeFeed/create_blog.html", context)
解决方案
您正在通过编写标签手动呈现字段。当您使用表单实例进行渲染时,Django 会自动将 value 属性设置为以前的值。您可以使用{{ form.as_table }}
, {{ form.as_p }}
, {{ form.as_ul }}
. 您还可以使用字段名称来单独呈现{{ form.title }}
字段title
。
推荐阅读
- asp.net - 如何上传和检索 PDF 文件
- jquery - 用于多个下拉的自定义 CSS
- java - myEclipse 首选项没有 Maven 选项
- javascript - 单击输入以选择图像然后显示按钮后如何调用函数?
- javascript - 在数据表分页单击时停止事件执行
- android - 在锁定的 Android 上没有来自 AccessibilityService 的回调
- javascript - 在使用 redux 表单包裹且具有相同标识符的子表单之间切换也会破坏父表单值
- pdf - 如何以编程方式将 RMarkdown ioslides 演示文稿转换为 2-up PDF?
- reactjs - app.delete 中的 req.params 为空,使用 express、axios、react
- c# - 如何使用c#执行vsjitdebugger.exe