1

首先,在 Django 模板中检查回发是正确的方法:

{% if request.POST %}
    <div id="elementThatShouldBeInTheDOMIfPostBack">
    </div>
{% endif %}

其次,是否有一种优雅的方法来确定 N 是否是第 N 个回发,即由于验证错误?

4

1 回答 1

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 }}

干杯! 如果您觉得它有帮助,请不要忘记对此答案进行投票;)

于 2013-08-28T08:10:26.513 回答