1. ホーム
  2. django

[解決済み] Django: 投稿をリダイレクトして、投稿データを渡すには?

2023-04-29 22:50:38

質問

Django views.py ファイルで POST リクエストを処理するとき、別の url にリダイレクトする必要があることがあります。このリダイレクト先のURLは、同じDjango views.pyファイル内の別の関数によって処理されます。これを行い、元の POST データを維持する方法はありますか?

UPDATE: なぜこれをしたいのか、さらに説明します。 私は、ユーザーがテキストフィールドに入力したデータを受け入れる2つのWebアプリ(AppAとAppBと呼ぶことにします)を持っています。ユーザーが送信をクリックすると、データが処理され、詳細な結果が表示されます。AppAとAppBは、それぞれ異なる種類のデータを想定しています。時々、ユーザーが誤ってAppBタイプのデータをAppAに投稿してしまうことがあります。このような場合、AppBにリダイレクトし、AppBの結果を表示するか、少なくともAppAに入力されたデータを入力させたいと考えています。

また

  • クライアントは、2 つのアプリを 1 つにまとめるのではなく、2 つの別々のアプリを望んでいます。

  • クライアントが所有しているため、コードを表示できません。

アップデイト2。 私は、ここでは KISS が最高の原則であると判断しました。2 つのアプリを 1 つにまとめ、物事をよりシンプルかつ堅牢にすることができました。素晴らしいフィードバックをありがとうございました。もし、私が説明したように2つのアプリを維持しようとするならば、セッションがその方法だと思います。Dzidaのコメントでデザインと簡略化について考えることができたので、感謝します。

どのように解決するのですか?

このような問題に直面した場合、設計を修正する必要がある可能性があります。

これはHTTPの制限で、POSTデータはリダイレクトを伴わないというものです。

何を達成しようとしているのか説明してもらえますか?そうすれば、たぶん私たちはいくつかのきちんとした解決策を考えることができるでしょう。

Matthewが提案したようにセッションを使用したくない場合、新しいページへのGETでPOSTパラメータを渡すことができます(セキュリティやクエリ文字列のGETパラメータの最大長などのいくつかの制限を考慮してください)。

あなたの更新にUPDATE:) 2つのWebアプリがあり、それらのアプリが1つのviews.pyを使用しているのは奇妙に聞こえます(合ってる?)。とにかく、GETでPOSTから適切なビューにデータを渡すことを検討してください(もちろん、データが機密でない場合)。