Django
シグナル関連記事 post_save,pre_saveの使い分けについて[仮説] 本題 私の場合djangoがはじめてのwebフレームワークで、djangoの仕組みを理解することは かなりハードルが高い。それはwebアプリケーションの仕組みの理解やフレームワークの概念の理解、フレ…
GenericForeignKeyのメモ GenericForeignKeyを調べる機会があったので重要そうなところをメモしておく。なおGenericForeignKeyはwebアプリケーションのデータ分析に役立つかもしれないと調べているが、その可否についても分かり次第記載したい。 参考url htt…
ユーザログインしているときだけ見える構造を構築する方法 実装例 views.py def hoge(): context = { } return render(request, "index.html",context ) #又はclass-based-viewを使う場合には、 class Diary(ListView): model = diaries template_name = "in…
djangoのウェブアプリケーションで表示される情報を定期的に更新したい 現状のプロダクトでは、postgresqlにcsvのデータをコピーしただけなのでデータは変更されない。ブログのようなアプリケーションならこれで十分だけれども、定期的に情報を更新したいも…
特殊メソッドとは 特殊メソッドは、みんなのpythonによると 新しく作ったクラスに特殊メソッドを定義すると、インスタンスに対して演算子などを使った操作を行えるようになります。 と書いてある。あまりピンとこなかったが今回本当に小さいことだけれど分か…
python manage.py makemigrations/migrateした後にpostgresqlのテーブルの一部またはデータベースを削除してみた。そこからもう一度python manage.py makemigrations/migrateしてみたけど新たにテーブルを作成することができなかった。no change detected と…
settings.pyを製品用と開発用に分ける理由 製品用と開発用にsettings.pyを使い分けると便利になる。それは製品と開発環境で作業を行き来する際に有用なのだ。開発環境では例えばsettings.pyのDEBUGをTrueに変更しなければならない。製品ではFalseに戻さなけ…
djangoの仕組みがわかっていない 今までwsgiなど全然わからない存在であったが、どうやらそのへんの知識が必要になってきた。今の推測と分からない部分について書き出してみる。 デプロイ環境と開発環境用のファイルを準備することで、開発とデプロイがしや…
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)がdjangoで表示された。 環境、状況 環境 centos7 django2.1 python3.6 状況 python36 manage.py createsuperuser と叩き、ユーザ名を入力すると上の…
nginxだけではロケットは打ち上げられない開発段階では127.0.0.1:8000 にアクセスすればロケットが打ち上がる。 一方centos7にdjangoをインストールしてそのままpython manage.py runserverをすると、 December 18, 2018 - 18:30:37 Django version 2.1.4, u…
参考URL https://www.monotalk.xyz/blog/django-model-%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%81%8Cmakemigrations-%E3%81%A7-no-changes-detected-%E3%81%AB%E3%81%AA%E3%82%8B/ python manage.py makemigrations参考先によると上記のコマンド…
ベース記事formの扱い方 まとめ ModelFormModelFormの有用性今までフォームに関しては、htmlで記載する方法と、forms.Formの継承として記述する方法を使ってきた。これらの方法とは別にforms.ModelFormを使ったフォームの作成手法があることがわかった。form…
関連記事views.pyの要点views.pyの目的はテンプレートにデータ(データベース情報も含む)を渡す。 ここから導けることは、views.py内で行わなければならないことは、テンプレートに渡すべき情報を選択すること、どのテンプレートに渡すかを定めること。この…
is_safe_urlについての情報がないので探してみた。 ソースコード def is_safe_url(url, allowed_hosts, require_https=False): """ Return ``True`` if the url is a safe redirection (i.e. it doesn't point to a different host and uses a safe scheme).…
関連記事Django リンクについて 本題urls.pyの役割はページ遷移させることだ。ただurls.pyの使い方は一つではないことに気が付かなかった。 少し広くなった視点をメモに残す。 1.developer側の使い方アプリケーション作成者にとってはブラウザ上にアドレスを…
シグナルについて どのような場面でシグナルのpost_save,pre_saveを使いわけるのか理解していない。 今のイメージを書きとどめておく。pre_save: class A のインスタンスaのプロパティxを変更する。プロパティxを変更すると、xに関連して他のプロパティyも変…
created は引数createdはpost_saveにのみ存在する引数である。これはBoolean値をとる。 レコードが作成された場合に True を返す。 どんな場面でcreatedを使うのかpost_saveが発動するのは、データオブジェクトがsave()メソッドされた後である。 このsave()…
ベース記事 models.pyまとめ インスタンスのForeignKeyフィールドにNoneデータ入力しcreateするときforeignkeyにdjangoオリジナルのUserモデルを登録して、views.pyにてインスタンスを作成するコードを書いてみた。このとき困ったことを書く。 models.pyにて…
求められるものwebアプリケーション作成に求められることはなにか?まずウェブアプリにどのような機能があるか知っていること。次にその機能を実現するにはどうすればいいか分かっていること。djangoのドキュメントを読むと知識は少しづつついてくるけど、実…
models.query.QuerySetの継承の意義クエリセットをマネージャを継承したものでクエリセットを設定することができる。この場合に定義した関数は重ねて使用することが出来ない。 イメージで言えば、Blog.objects.filter(active=True).filter(featured=True) こ…
pythonのgetとdjangoのgetは異なるので注意よく使われるgetにdjangoとpythonで別物だと気づいたのでメモしておく。 とりあえずドキュメントをそれぞれ置いておく。 get() を用いて1つのオブジェクトを取得する https://docs.python.jp/3/library/stdtypes.ht…
関連記事 カスタムマネージャーとカスタムクエリについて データベースとクエリセット間の操作手続きデータベース、クエリセット、データオブジェクトの3要素が登場する。 そしてデータベースとクエリセット間の操作手続きとクエリセットとデータオブジェク…
関連記事 templates cssやjsをbase.htmlに組み込む方法 templates にbase.htmlを備える 本題どうなったらtemplateが読み込めるのか作業中にテンプレートの読み込みエラーが出ることが多い。エラーが出るのは作業中のコードと記述しなければならないコードに…
USERモデル関係 他の記事 ユーザ登録(sign up)機能を作る 本題そもそもUserモデルとはdjangoを勉強していて急に出てくるUserという言葉。ドキュメント内でそれらが当たり前のように様々な説明に絡む。 もやもやした。 勉強してきて少しずつ分かってきたこと…
フォームによるデータの返す準備、手続きforms.Formを用いたデータを表示させるには以下のコマンドが必要になる。 form=HogeForm(request.POST) if form.is_valid() form.cleaned_data で単純にrequest.POSTを入れたFormにcleaned_dataをかけ合わせれば入力…
forms.Formを利用するにあたって必ずhtml上で定めなければならない事がある。 これはforms.pyで定めることが出来ず、どうしてもhtml上で記述しないといけないということだ。https://docs.djangoproject.com/ja/2.1/topics/forms/#html-forms As well as its <input>…
POST/GETの判別 HTMLフォームから送信されたパラメータが、どのメソッドで送信されたかを調べる方法 if request.method == 'POST': # POSTでパラメータを送ってきたときの処理 ... else: # GETでパラメータを送ってきたときの処理 ... HTTP リクエストヘッダ…
このページにミドルウエアで学んだことを集めていく。 まずミドルウエアはなにか? ミドルウェアは、Django のリクエスト/レスポンス処理にフックを加えるためのフレームワークです。これは、Django の入力あるいは出力をグローバルに置き換えるための、軽量…
関連記事 pythonのgetとdjangoのgetは異なる 本題:データオブジェクトの操作まとめ 動画をみて勉強していたが、ついていけなくなった。 打開策としてドキュメントを読んでみようと思う。 最初は読んでもわからなかったことも今なら少しわかることもあるだろ…
自分がmodels.Managerに出会ったのは、クラスを継承(拡張?)するときだ。 これについての説明があったのでソースを保持する。 マネジャ — Django v1.0 documentation Managerはデータベースクエリ操作をdjangoモデルに提供しているインターフェース。自分…