kjk2580
@kjk2580 (k k)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Django CreateViewのsuccess_urlについて

CreateViewのsuccess_urlについて質問です。

トップページから作成画面に遷移した際に、元いたページのURLの取得方法がわかりません。
※正確にはトップページはURLが動的になっており、作成した後に元の動的のURLに戻りたいです。

現在は、「request.META['HTTP_REFERER']」と記載していますが、新規作成する前に元画面に戻ってしまします。

image.png

0

1Answer

getメソッドはそのページにアクセスした際、呼び出されると思います。
なので、そのコードの場合、確かに作成画面にアクセスしたら元の画面に戻されると思います。

保存処理を行う場合、shokuhinCreateView にpostメソッドを追加する必要があると思います。
下記は予想される処理です。

  1. ユーザーが作成画面で保存ボタンを押す
  2. shokuhinCreateViewのpostメソッドが呼ばれる
  3. postメソッドで保存処理を行う
  4. postメソッドの最後でreturn redirect(request.META.get('HTTP_REFERER'))して元の画面に戻る

postメソッドの参考
https://qiita.com/nab/items/e32cde1643a010dfacb9

0Like

Comments

  1. @kjk2580

    Questioner

    迅速な回答ありがとうございます。
    私の説明不足です。

    1.トップ画面より作成画面へ遷移する。
      ※この遷移の際にトップ画面を覚えておく
       トップ画面は、動的である。

    2.作成画面で保存ボタンを押す。

    3.覚えておいたトップ画面に遷移する。

    先程回答したいただきました内容だと作成して保存すると再度作成画面に遷移されます。



  2. @kjk2580

    Questioner

    ありがとうございます。

Your answer might help someone💌