nobu blog

プログラミングやゲームの話など。

*



【Django】Formで新規作成時にデータ件数チェックを入れる方法

   

概要

Djangoにおいて、データ作成機能を実現する上でデータ(レコード)の上限数を設けて入力チェックを行う方法のメモ。

背景

Djangoに限らず、一般的なWEBアプリケーションでデータのメンテナンス画面を実装すると下記のような構成(流れ)になると思います。

スポンサーリンク

データの一覧画面

データの一覧が表示されて、更新したいデータを選択するか、新規作成を選択する画面です。

一覧画面

データの入力画面

新規作成ボタンか更新ボタンで遷移。
データを入力して、データを追加もしくは更新する。

入力画面

やりたいこと

一覧画面で新規作成ボタンを押下時に、下記を実施する。

  • データの現在の件数をチェック
  • 上限に達した場合には入力画面に遷移しない
  • エラ〜メッセージを表示する

ポイントとしては、「入力画面には遷移しない」ことになります。
入力画面で個数チェックを行うと、下記のデメリットがあります。

1.ユーザには不親切
2.更新か新規かを区別する必要があり、煩雑になる

実現方法

入力画面へ遷移するためのViewのdispatch関数をオーバーライドしてデータの件数チェックを追加します。
件数に達した場合には、エラ〜メッセージを追加しリダイレクトして元の一覧画面に戻します。

スポンサーリンク

データの最大数に達した状態で、新規作成ボタンで新規画面に行こうとすると下記のようにメッセージが表示されて遷移できない事が確認できます。

エラ〜

なお複数人での使用などを想定した場合、遷移だけではなく確定時にも個数のチェックなどは必要になると思うので、ご注意を。

 - python