0

パスを入力として取り、そのディレクトリ内のファイルとサブフォルダーを分析し、情報をデータベースに保存し、解析したばかりのファイルに関する統計をユーザーに表示するフォームがあります。これは現在、Django ビューと render_to_response を使用して行われています。

私が読んだすべてによると、ページが更新された場合、POST データで生成されたページがフォームを再送信するため、POST を処理するときに HttpResponseRedirect 以外のものを使用するのは正しくありません。

ここでの問題は、指定されたパス上のファイルを分析した結果、最終的に大量の要約データが表示されることです。そのデータを httpResponseRedirect で表示するにはどうすればよいですか? を使用して GET パラメータとして送信することdjango.core.urlresolvers.reverseは、データ量のために実行できないようです。

4

3 に答える 3

2

request.sessionにデータを置くことができます

http://www.djangobook.com/en/beta/chapter12/#cn36

http://docs.djangoproject.com/en/1.2/topics/http/sessions/

于 2010-11-16T23:23:16.977 に答える
0

大雑把ですが簡単な解決策は、データを json テキスト ファイルに書き込み、それをリダイレクト ページで読み取ることです (これにより、ページの更新時にデータを再構築する手間も省けます)。

于 2010-11-17T13:08:12.980 に答える
0

あなたの POST ハンドルは、送信されたフォーム データからデータベース オブジェクトを作成すると思いますが、これは正しいですか? もしそうなら、あなたはこのようなことをすることができます(:

    my_obj = MyModel.objects.create(**form.cleaned_data) # This is the part yuo already have, most probably expressed with some other code, but still..
    return HttpResponseRedirect('/url/to/redirect/?id=%d' % obj.id)

リダイレクトのようなものは実際にはreverse()関数を使用する必要があり、MyModel オブジェクトを編集するための URL が必要だと思います。次に、次のことができます。

    return HttpResponseRedirect(reverse('edit-mymodel', (), {'id': obj.id}))

関連する URL は次のようになります。

url('^edit/mymodel/(?P<id>\d+)$', 'apps.myapp', name='edit-mymodel')
于 2010-11-17T12:33:02.913 に答える