我正在制作表单,但是当数据无效时,它会在再次加载页面时清空该字段,我该如何解决? 我的观点:
def create_country(request):
if request.POST:
country_form = CountryForm(request.POST)
if country_form.is_valid():
country_form.save()
return HttpResponseRedirect(reverse('country'))
else:
return render(request, 'create_country.html', {'country_form': country_form})
country_form = CountryForm()
return render(request, 'create_country.html', {'country_form': country_form})
我的模板:
<div>
<center>
<h2>Create a new country</h2>
</center>
<form action="{% url 'create_country' %}" method="post">{% csrf_token %}
<table>
<tr>
<b>{{ country_form.non_field_errors }}</b>
</tr>
<tr>
<b>{{ country_form.name.errors }}</b>
</tr>
<tr>
<td><label for="id_name">Name:</label></td>
<td><input id="id_name" type="text" name="name" size= "25" maxlength="127" /></td>
</tr>
<tr>
<b>{{ country_form.flavor.errors }}</b>
</tr>
<tr>
<td><label for="id_flavor">Flavor Text:</label></td>
<td><textarea style="width: 300px; height: 200px;" id="id_flavor" type="text" name="flavor" maxlength="511"></textarea></td>
</tr>
<tr>
<td></td>
<td style="float: right;"><input type="submit" value="add country" /></td>
</tr>
</table>
</form>
</div>
如何在帖子添加回表单之后添加我之前放入的旧数据,因为它返回为无效?
答案 0 :(得分:1)
如果{{ form }}
{{ form.as_ul }}
或{{1}}无法按照您想要的方式呈现,那么请仔细阅读basic form layouts上的文档。使用它,您应该能够使用CSS以您想要的方式呈现表单。您可以在表单字段中指定 customizing the form template以设置所需的任何属性。
尽量避免在模板中手动渲染表单输入。这是重复的,并增加了犯错的可能性。