0

djangoでビューを作成する場合、POSTデータをコンテキストとして渡すことはできますか?あれは:

def view( request ):
    #view operations here
    #...

    c = Context({
        'POST':request.POST,
    })
    return render_to_response("/templatePath/", c, context_instance=RequestContext(request))

私の目標は、データをデータベースに保存せずに、すでに入力されているフィールドのデータを維持することです。つまり、オプションをクリックしてフィールドエントリを追加すると、入力したデータが保持され、フォームに自動的に入力されます。これはだらしないか、おそらく安全ではないかもしれないと思います。これが悪いまたは安全でないテクニックである理由はありますか?データを維持するためのより良い方法はありますか?

4

1 に答える 1

4

変数をテンプレートに渡すことは本質的に悪いことではありませんがrequest.POST、達成しようとしているものはすべて、ステレオタイプのフォーム ビューによって既に処理されています。現在の道をたどると、Django でフォームを処理するための推奨される方法のバグのあるバージョンになってしまいます。

Django ドキュメントのビューでフォームを使用するを参照してください。

def contact(request):
    if request.method == 'POST': # If the form has been submitted...
        form = ContactForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...
            return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = ContactForm() # An unbound form
    return render_to_response('contact.html', {
        'form': form,
    })

あなたの場合、リダイレクト URL が同じフォームにリダイレクトされることを確認する必要があります。を参照してくださいdjango.shortcuts.redirect()

于 2011-06-01T14:10:53.367 に答える