django - 如何在 django 中制作更新功能
问题描述
我有一个更新功能,允许用户使用 django 使用预先填充的数据更新表单
问题一旦用户尝试进入更新页面,系统会显示以下错误:
赋值前引用的局部变量“form”
视图.py
def update(request,pk):
instance = get_object_or_404(suspect,pk=pk)
if request.method == "POST":
form = suspectForm(request.POST or None,instance=instance)
if form.is_valid():
instance = form.save(commit = false)
instance.user = request.user
instance.save()
return redirect('result',pk = instance.pk)
else:
form = suspectForm(instance = instance)
return render(request,'blog/update.html',{'form':form})
更新.html
{% extends "testbootstarp.html" %}
{% load static %}
{% block content %}
<div class="offset-3 col-md-6">
<form method="post">
<div class="form-group">{% csrf_token %}
{% for field in form %}
<div class="field">
<label>{{field.label_tag}}</label>
{{field}}
{% for error in field.errors %}
<p class="help is-danger">{{error}}</p>
{% endfor %}
</div>
{% endfor %}
</div>
<button type="submit">edit</button>
</form>
</div>
{% endblock content %}
解决方案
def update(request,pk):
instance = get_object_or_404(suspect,pk=pk)
form=suspectForm(instance = instance)
if request.method == "POST":
form = suspectForm(request.POST or None,instance=instance)
if form.is_valid():
instance = form.save(commit = false)
instance.user = request.user
instance.save()
return redirect('result',pk = instance.pk)
else:
form = suspectForm(instance = instance)
return render(request,'blog/update.html',{'form':form})
推荐阅读
- visual-studio - 如何使用通过 MSVS 构建的 json 设置自动化 CMake 项目?
- c# - 将 web.config 文件添加到 Asp.Net Core 项目
- javascript - 对象中的基元更新但对象中的数组不更新
- html - 不再缩略图博客文章
- apache-spark - get_json_object 与 from_json 的性能
- java - Spring Boot 和 Spring Security,无法在 AuthenticationEntryPoint 中使用自定义消息发送错误
- haskell - /lib64/libtinfo.so.5:没有可用的版本信息
- python - 如何为 PyJulia 简化一串可执行代码
- c - 我在这里到底做错了什么?
- sql - 将where条件中的子查询列检索到主查询时出错