我已经编写了用django在html页面上显示表单的代码。每次我点击更新按钮,它都会显示一个空表单。但是我想要的是,如果我之前输入了一些数据,这些数据应该以正常的形式显示。那么我就必须能够编辑它。但是,我每次都收到一张空表格。
在视图.py公司名称:
def update_longterm(request):
if not request.user.is_authenticated:
return render(request, 'cups4/index.html')
else:
form = LongtermForm(request.POST or None, request.FILES or None)
if form.is_valid():
longterm = form.save(commit=False)
longterm.user = request.user
longterm.body = form.cleaned_data['body']
longterm.save()
return render(request, 'cups4/detail_longterm.html', {'longterm': longterm})
context = {
"form": form,
}
return render(request, 'cups4/create_template.html', context)
在模型.py公司名称:
^{pr2}$在表单.py公司名称:
class LongtermForm(forms.ModelForm):
class Meta:
model = Longterm
fields = [ 'body',]
模板:
{% extends 'base.html' %}
{% block title %}Immediate{% endblock %}
{% block content %}
<div class="container-fluid">
<div class="row">
<div class="col-sm-12 col-md-7">
<div class="panel panel-default">
<div class="panel-body">
<h3>Immediate Goals</h3>
{% if error_message %}
<p><strong>{{ error_message }}</strong></p>
{% endif %}
<form class="form-horizontal" role="form" action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% include 'cups4/form_template.html' %}
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
每次都会显示一个新表单。相反,我希望加载以前的数据。怎么做?提前谢谢!
可能有两种情况:
form = LongtermForm(instance=your_object)
在另一种情况下,如果您正在添加一个新对象,并且您希望在出现错误时查看用户以前输入的信息。您可以将表单呈现为:
form = LongtermForm(request.POST or None, request.FILES or None)
在这两种情况下,请确保渲染表格错误和表单非字段错误以防在create中手动呈现表单_模板.html,否则django将自动处理它,如果您像这样呈现它,例如
{{ form.as_p }}
相关问题 更多 >
编程相关推荐