首先,在 Django 模板中检查回发是正确的方法:
{% if request.POST %}
<div id="elementThatShouldBeInTheDOMIfPostBack">
</div>
{% endif %}
其次,是否有一种优雅的方法来确定 N 是否是第 N 个回发,即由于验证错误?
首先,在 Django 模板中检查回发是正确的方法:
{% if request.POST %}
<div id="elementThatShouldBeInTheDOMIfPostBack">
</div>
{% endif %}
其次,是否有一种优雅的方法来确定 N 是否是第 N 个回发,即由于验证错误?
通常,在 django 模板中包含任何逻辑都是一种不好的做法。django 中的模板仅用于表示您的视图函数已计算/处理的内容。您应该在您的视图功能中执行此操作,例如。使用会话:
#----views.py------
from django.shortcuts import render
from forms import MyForm
def someview(request):
form = MyForm()
if not 'postbacks' in request.session:
request.sesson['postbacks'] = {}
if request.path not in request.sesson['postbacks']:
request.sesson['postbacks'][request.path] = 1
if request.method == 'POST':
form = MyForm(request.POST)
if not form.is_valid():
request.sesson['postbacks'][request.path] += 1
else:
request.sesson['postbacks'][request.path] = 1
return render(request,
'myapp/tamplate.html',
{'form': form,
'postback': request.sesson['postbacks'][request.path]})
然后在您的模板上简单地使用:
{{ postback }}
干杯! 如果您觉得它有帮助,请不要忘记对此答案进行投票;)