ランダムおすすめ記事

ホームページ作りました

アンケートサイト制作過程①~make migrationsの罠~

アンケートサイト制作過程①

先日デプロイしたアンケートサイト。その制作過程を復習もかねてまとめようと思う。

多分サイトを作り始めたのは11月20日頃だと思う。

大元はこれ

dangoチュートリアル

はじめての Django アプリ作成、その 1 | Django documentation | Django

 

この投票機能にコメントと公開期限をつけられるようと思い改造をした。

 

migration失敗でぐちゃぐちゃに

udemyの講座を参考にしたため投票フォーム自体は完成させることができた。

ただしurlと質問のプライマリーキーを紐つけることが難しかった。

def add(request, question_id):

    if request.method == 'POSTand form.is_valid():

         form.save() return redirect('polls:comment')

         context = { 'form':form } return render(request, 'polls/day_form.html', context)

 

POSTする際にquestion_idと紐つけてコメントを飛ばしたかったのだがこの時点ではうまくいかなかったし、migrationの際に既存のデータをどのように扱うかについては適切にdefaultを設定すればいいのだがそれをよく理解しておらず無理やりmigrateしてしまい、データベースがおかしくなってしまった。

結局ここで一度最初からやり直したと記憶している。

 

結局models.pyのdefaultに以下のblank nullの値を入れる

comment = models.TextField(Question, blank=True, null=True,)

 

ここにたどり着くのに3~4日を要したと記憶している。

modelsに新しい値を加える場合に今までのデータはどのように扱うのか?

default値を加えて処理するのだがそこがよくわかっていなかったのだ。

コードを書く以前のmigrationからすでに詰まっていた。

今思うと簡単な話だが当時は本当に悩んでいたのだった。