首先,检查Django模板中的回发是正确的方法:
{% if request.POST %}
<div id="elementThatShouldBeInTheDOMIfPostBack">
</div>
{% endif %}
第二,有没有一种优雅的方法可以确定N是否是第N回发,即由于验证错误?
答案 0 :(得分:1)
通常,将任何逻辑包含在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 }}
干杯!如果您认为这有用,请不要忘记向上投票;)