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 に答える