Djangoでモデルの追加や拡張を繰り返していたらエラーが発生し、動かなるというケースに遭遇しました。開発段階であればとにかく一度リセットしてやり直すことができるので、その方法をメモします。
Djangoではデータベースに挿入されたレコードのidが連番になるのですが、特別な理由がない場合はセキュリティ的に有利なUUIDを使うのが良いそうです。という訳でidをuuidに変更する方法をメモします。
ページネーションなどのフロントサイドのパーツが正常に動いているか目視で確認したいなぁと思い、ダミーのレコードをデータベースに流し込むことにしました。一つずつ挿入するのは大変なので、スクリプトを作って100個ほどスパーンと一気に流し込みます。
以前python-social-authというライブラリを使ってGoogleアカウントでOAuth認証ができるようになりましたが、アバター画像も引っ張ってこようと思い、実装方法を調べたのでまとめます。
Django既存のUserモデルを拡張したカスタムユーザーモデルと、リレーションを貼ったProfileモデルを用意してサインアップ機能を実装しました。これでDjangoの認証周りの設定は自由にできるようになったと思いますが、確実に忘れるのでメモを残します。
Djangoにはフォーム関連のフレームワークが強力でバリデーションをいい感じに行ってくれるのですが、デザイン面の調整が難しくて苦戦中です。Bootstrap4やFoundationなどのCSSフレームワーク対応のライブラリなどいくつか試した結果、`django-widget-tweaks`というのが最も自由度が高く、HTMLライクに記述できて分かりやすかったため、情報をまとめます。
Djangoにはデフォルトで次のようなUserモデル(テーブル)と、そのモデルに合わせた認証システムが組み込まれていますが、アプリケーションによってはユーザーに紐づく情報を足したり、細かい調整をしたい時があると思います。そのようなUserモデルの拡張方法についてメモします。
Djangoに`rails console`的な機能ってないのかな?と思い調べたところ、__Django shell__という機能がありましたのでメモします。
Djangoではsettings.pyに秘密鍵、APIキーやデータベースのパスワード情報など記入します。GitHubなどでソースコードを公開したい場合、こういった機密情報はGitの外側に隠しておきたいですよね。情報漏洩しないよう、対策してみました。
GoogleやFacebook、GitHubアカウントでのログイン機能は便利ですからね。DjangアプリでOAuth2ログイン認証を取り入れたく、実装方法を調べました。かなり手こずったので、忘れないようにメモします。