我正在尝试使用 django 创建一个网络,其中向用户提示一个表单,该表单可以填充它的一些值并提交它们。然后,python 程序将填写其余部分并显示用户填写的表单,以及服务器填写的字段。我正在使用 modelForms,因为我希望我的模型和我的表单之间完全匹配。
出于几个原因,我开始使用以下代码,但我不知道为什么在提交表单后,这些字段不再显示为 CharFields,而是类似于“html 标签”,并且不可编辑了。
该代码是我的一个非常简化的版本,其中只有一个字段,由用户填写。
视图.py:
def manage_printers(request):
p = PrinterForm(request.POST or None)
if request.method == 'POST':
if p.is_valid():
f = p.save(commit=False)
f.name = request.POST.get('name')
f.save()
return render_to_response('web.html', {'printer': f})
else:
return HttpResponse("form not valid")
return render_to_response('web.html', {'printer': p}, )
模型.py:
class Printer(models.Model):
name = models.CharField(max_length=200, default=' ')
def __unicode__(self):
return self.name
class PrinterForm(ModelForm):
class Meta:
model = Printer
网页.html:
<form action="/useriface/" method="post">
<p>Name: {{ printer.name }}</p>
</form>