diadia

興味があることをやってみる。自分のメモを残しておきます。

Django

django signal(シグナル)について

シグナル関連記事 post_save,pre_saveの使い分けについて[仮説] 本題 私の場合djangoがはじめてのwebフレームワークで、djangoの仕組みを理解することは かなりハードルが高い。それはwebアプリケーションの仕組みの理解やフレームワークの概念の理解、フレ…

GenericForeignKeyについてのメモ

GenericForeignKeyのメモ GenericForeignKeyを調べる機会があったので重要そうなところをメモしておく。なおGenericForeignKeyはwebアプリケーションのデータ分析に役立つかもしれないと調べているが、その可否についても分かり次第記載したい。 参考url htt…

django ログインユーザしか見れない構造の作り方

ユーザログインしているときだけ見える構造を構築する方法 実装例 views.py def hoge(): context = { } return render(request, "index.html",context ) #又はclass-based-viewを使う場合には、 class Diary(ListView): model = diaries template_name = "in…

djangoに定期起動する機能を実装する

djangoのウェブアプリケーションで表示される情報を定期的に更新したい 現状のプロダクトでは、postgresqlにcsvのデータをコピーしただけなのでデータは変更されない。ブログのようなアプリケーションならこれで十分だけれども、定期的に情報を更新したいも…

特殊メソッドについて

特殊メソッドとは 特殊メソッドは、みんなのpythonによると 新しく作ったクラスに特殊メソッドを定義すると、インスタンスに対して演算子などを使った操作を行えるようになります。 と書いてある。あまりピンとこなかったが今回本当に小さいことだけれど分か…

migrate後にテーブルを削除

python manage.py makemigrations/migrateした後にpostgresqlのテーブルの一部またはデータベースを削除してみた。そこからもう一度python manage.py makemigrations/migrateしてみたけど新たにテーブルを作成することができなかった。no change detected と…

製品用と開発用にsettings.pyを分けると便利

settings.pyを製品用と開発用に分ける理由 製品用と開発用にsettings.pyを使い分けると便利になる。それは製品と開発環境で作業を行き来する際に有用なのだ。開発環境では例えばsettings.pyのDEBUGをTrueに変更しなければならない。製品ではFalseに戻さなけ…

wsgiについて

djangoの仕組みがわかっていない 今までwsgiなど全然わからない存在であったが、どうやらそのへんの知識が必要になってきた。今の推測と分からない部分について書き出してみる。 デプロイ環境と開発環境用のファイルを準備することで、開発とデプロイがしや…

UnicodeEncodeError:が表示されるとき

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について

nginxだけではロケットは打ち上げられない開発段階では127.0.0.1:8000 にアクセスすればロケットが打ち上がる。 一方centos7にdjangoをインストールしてそのままpython manage.py runserverをすると、 December 18, 2018 - 18:30:37 Django version 2.1.4, u…

makemigrationsでNo changes detectedが返される場合

参考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参考先によると上記のコマンド…

ModelFormなるもの

ベース記事formの扱い方 まとめ ModelFormModelFormの有用性今までフォームに関しては、htmlで記載する方法と、forms.Formの継承として記述する方法を使ってきた。これらの方法とは別にforms.ModelFormを使ったフォームの作成手法があることがわかった。form…

views.py の目的[まとめ]

関連記事views.pyの要点views.pyの目的はテンプレートにデータ(データベース情報も含む)を渡す。 ここから導けることは、views.py内で行わなければならないことは、テンプレートに渡すべき情報を選択すること、どのテンプレートに渡すかを定めること。この…

is_safe_urlのソースコード

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).…

urls.pyの使い方

関連記事Django リンクについて 本題urls.pyの役割はページ遷移させることだ。ただurls.pyの使い方は一つではないことに気が付かなかった。 少し広くなった視点をメモに残す。 1.developer側の使い方アプリケーション作成者にとってはブラウザ上にアドレスを…

post_save,pre_saveの使い分けについて[仮説]

シグナルについて どのような場面でシグナルのpost_save,pre_saveを使いわけるのか理解していない。 今のイメージを書きとどめておく。pre_save: class A のインスタンスaのプロパティxを変更する。プロパティxを変更すると、xに関連して他のプロパティyも変…

Django シグナル POST_SAVEのcreated について

created は引数createdはpost_saveにのみ存在する引数である。これはBoolean値をとる。 レコードが作成された場合に True を返す。 どんな場面でcreatedを使うのかpost_saveが発動するのは、データオブジェクトがsave()メソッドされた後である。 このsave()…

ForeignKeyフィールドのcreate

ベース記事 models.pyまとめ インスタンスのForeignKeyフィールドにNoneデータ入力しcreateするときforeignkeyにdjangoオリジナルのUserモデルを登録して、views.pyにてインスタンスを作成するコードを書いてみた。このとき困ったことを書く。 models.pyにて…

webアプリケーション作成の整理

求められるものwebアプリケーション作成に求められることはなにか?まずウェブアプリにどのような機能があるか知っていること。次にその機能を実現するにはどうすればいいか分かっていること。djangoのドキュメントを読むと知識は少しづつついてくるけど、実…

カスタムマネージャーとカスタムクエリについて

models.query.QuerySetの継承の意義クエリセットをマネージャを継承したものでクエリセットを設定することができる。この場合に定義した関数は重ねて使用することが出来ない。 イメージで言えば、Blog.objects.filter(active=True).filter(featured=True) こ…

pythonのgetとdjangoのgetは異なる

pythonのgetとdjangoのgetは異なるので注意よく使われるgetにdjangoとpythonで別物だと気づいたのでメモしておく。 とりあえずドキュメントをそれぞれ置いておく。 get() を用いて1つのオブジェクトを取得する https://docs.python.jp/3/library/stdtypes.ht…

データベースとクエリセット間の操作手続き

関連記事 カスタムマネージャーとカスタムクエリについて データベースとクエリセット間の操作手続きデータベース、クエリセット、データオブジェクトの3要素が登場する。 そしてデータベースとクエリセット間の操作手続きとクエリセットとデータオブジェク…

templateまとめ

関連記事 templates cssやjsをbase.htmlに組み込む方法 templates にbase.htmlを備える 本題どうなったらtemplateが読み込めるのか作業中にテンプレートの読み込みエラーが出ることが多い。エラーが出るのは作業中のコードと記述しなければならないコードに…

Userモデル関係を整理してみる まとめ

USERモデル関係 他の記事 ユーザ登録(sign up)機能を作る 本題そもそもUserモデルとはdjangoを勉強していて急に出てくるUserという言葉。ドキュメント内でそれらが当たり前のように様々な説明に絡む。 もやもやした。 勉強してきて少しずつ分かってきたこと…

formの入力データを返す方法(cleaned_data)

フォームによるデータの返す準備、手続きforms.Formを用いたデータを表示させるには以下のコマンドが必要になる。 form=HogeForm(request.POST) if form.is_valid() form.cleaned_data で単純にrequest.POSTを入れたFormにcleaned_dataをかけ合わせれば入力…

forms.py外で定めなければならないもの

forms.Formを利用するにあたって必ずhtml上で定めなければならない事がある。 これはforms.pyで定めることが出来ず、どうしてもhtml上で記述しないといけないということだ。https://docs.djangoproject.com/ja/2.1/topics/forms/#html-forms As well as its <input>…

django:リクエストヘッダの内容を取得する まとめ

POST/GETの判別 HTMLフォームから送信されたパラメータが、どのメソッドで送信されたかを調べる方法 if request.method == 'POST': # POSTでパラメータを送ってきたときの処理 ... else: # GETでパラメータを送ってきたときの処理 ... HTTP リクエストヘッダ…

ミドルウェアまとめ

このページにミドルウエアで学んだことを集めていく。 まずミドルウエアはなにか? ミドルウェアは、Django のリクエスト/レスポンス処理にフックを加えるためのフレームワークです。これは、Django の入力あるいは出力をグローバルに置き換えるための、軽量…

django[データオブジェクトの操作まとめ]

関連記事 pythonのgetとdjangoのgetは異なる 本題:データオブジェクトの操作まとめ 動画をみて勉強していたが、ついていけなくなった。 打開策としてドキュメントを読んでみようと思う。 最初は読んでもわからなかったことも今なら少しわかることもあるだろ…

models.Manager の説明が書いてあった

自分がmodels.Managerに出会ったのは、クラスを継承(拡張?)するときだ。 これについての説明があったのでソースを保持する。 マネジャ — Django v1.0 documentation Managerはデータベースクエリ操作をdjangoモデルに提供しているインターフェース。自分…