Django データ作成と更新機能の実装

djangoで便利なモジュールでのログインクラスを使用せずに自前で実装するコードを書きます。

そしてプロフィールを作成はしたものの、更新するにはどうすれば・・・って時に役立つコードです。

CRUD概念の

  • create
  • read
  • update

を習得できます。

開発環境

環境

・Python 3.8

・django 2.2

・OS / Mac

更新するデータの事前準備

データの作成をする

まずはモデルにデータベースを作成します。

問合せ(inquiry)に投稿する、というイメージです。

そのままコピペして使えます。

models.py

作れましたらコンソールで以下のコマンドを実行しましょう。

ヒロヤン
上記コマンドでマイグレーションファイルを生成します。
ヒロヤン
作成されたマイグレーションファイルの内容に基づいてデータベースのテーブルを作成・変更します。

データの入力フォームの作成

こちらはhtml側で、formを作成するのと、データ入力された際のバリデーション(妥当性チェック)をするためのコードです。

そのままコピペして使えます。

forms.py

フロント作成

そのままコピペして反映させれば下記画面のようになります。cssは割愛しています。

※イメージ

inquiry_add.html

上記の入力してPOSTが成功した際の遷移先画面が下記になります。

inquiry_add_success.html

サーバー側の処理

データをsubmitした時の処理をviewsに書きます。

views.py

パスの処理

最後にパスコードの処理を書きます。これで導線ができました。

urls.py

実際に動作実行

実際にデータをポストします。

で起動します。

ここに好きな文言を入力してsubmitボタンをクリックします。

「成功しました」の画面に遷移すれば、データが作成(create)されています。

本題

ここから本題になります。作成されたデータに対して読み込み(read)と更新(update)を実行します。

formの実装

新たにEditInquiryFormというclassを用意します。先ほど作成したforms.pyに下記コードを追記します。

サーバー側の処理2

ここが今回の一番の基幹コードになります。

1つめの注目点としては、まず6行目でqs(query setの略)をデータベースからid=1を指定して取得します。

取得されたデータを9~14行目のitemの辞書型オブジェクトに格納し、それを15行目のEditInquiryFormに(initial=item)を渡します。

こうすることでデータを初期値としてセットすることが可能になります。

2つめの注目点としては、21-23行目でバリデーションされたデータを、20行目で取得したquery setに対して更新作業しているところです。

このように更新したいデータを各々書いていき、最後にinquiry.save()でデータを更新できるようになっています。

フロントコード

フロントコードになります。

index.html

それでは実際に起動をさせて動きをみてみます。

一番の特徴は入力フォーマットに入力し、更新する度に上でデータが更新されていることがわかります。

また同時に入力フォーマットも更新されていることがわかります。

ヒロヤン
いかがでしたでしょうか。全てコピペで動きますので、よくわかんないって人はコピペして色々操作してから動きに慣れてください。

プログラミング学習を効率良く進めるには…

私ヒロヤンがプログラミングを始めた頃は以下のような感じでした。

何から手をつけていいのか、わからない。

プログラミングを始めてみたけど、エラーが解決できない。

そしてネットで調べていくうちに膨大な時間が過ぎていきました。

私ヒロヤンの実体験より、プログラミングを効率的に学ぶために大切なことは以下のことだと考えています。

1. いつまでもダラダラとやらないで、目標を決定して短期集中する

2. マンツーマンで、わからない箇所は直ぐに質問をして即レスをもらう

.proでは私ヒロヤンが学習してきたプログラミング経験0からのpython/django、その他webサイト・サービス開発のコースが用意されています。

カウンセリング自体は無料なので話を聞いてみるだけでもいかがでしょうか?

また以下のリンク先ではdjangoを教えてくれるスクールをまとめ紹介しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です