Django Tutorial 4 メモ

前回はこちら

前回はこちら この章でやること アプリのビューを追加 追加したビューのルーティング(URLconf) 名前空間の解...

この章でやること

  • フォームの追加
  • コードの縮小化

実行手順

  • フォームの追加

    • detail.html
      form 要素を追加する。
      独特なのが、{% csrf_token %}の記述。
      Ajax で非同期通信する場合でもこの記述は必要で、埋め込まれた HTML の要素を JavaScript で取得して POST します。

      • 特有の記法
        forloop.counter: ループ内でインデックスが取れる。1 始まり。
        forloop.counter0: 上記の 0 始まりのパターン
    • views.py
      取得、更新ができたらリダイレクトする HTTP のベストプラクティスに則る。
      これにより、F5 押したときに「フォームの再送信」が出なくなります。
      競合についてもこの章で語られる。
      Avoiding race conditions using F()
      MDNL:HTTP のリダイレクト
  • コードの縮小化

    • URLconf を変換する。
      • urls.py
        <int:question_id>から<int:pk>へ変更。個の時点だとそんなのないよ。とエラーになるので、views.pyを変更する
    • 古い不要なビューを削除する。

所感

既に何度か出て来ているけど、コードを短絡するためのテクニックが非常に多い印象。
この章だと、context_name が省略できたりするのはいいなーと感じる。

Django 側で Model を与えると、HTML 側の変数が自動で組み込まれるのは、知ってないと辛そう。
1つのViewに対して、複数の Model を返すケースを想定していないのはシンプルな方が良い設計だよね。という前提なのかな?

シェアする

  • このエントリーをはてなブックマークに追加

フォローする