diadia

興味があることをやってみる

Django

nginx

centos7にdjangoをインストールしてそのままpython manage.py runserverをすると、 December 18, 2018 - 18:30:37 Django version 2.1.4, using settings 'project.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with C…

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/あと App 'products' could not be found. Is it in INSTALLED_AP…

ModelFormなるもの

ベース記事formの扱い方 まとめ ModelFormModelFormの有用性今までフォームに関するものは、htmlで記載する方法と、forms.Formの継承として記述する方法があった。これに加えてforms.ModelFormなるものがあることが分かった。これはforms.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も変…

シグナル created について

created は引数createdはpost_saveのみの引数のようだ。これはブール値。レコードが作成された場合に True を返す。らしい。これがどんな場面で使うと効果的なのかはわからない。

ForeignKeyフィールドのcreate

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

Userモデル運用

ベース記事_Userモデルベース 内容一覧 既存のユーザーモデルの呼び出し方from django.contrib.auth.models import User 既存のUserモデルを修正変更したい場合既存のUserモデルを変更したい場面に出くわした。自分の場合はmodels.pyにてuserのフィールドに…

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モデル運用 本題そもそもUserモデルとはdjangoを勉強していて急に出てくるUserという言葉。ドキュメント内でそれらが当たり前のように様々な説明に絡む。 もやもやした。 勉強してきて少しずつ分…

シグナルについて

シグナル関連記事post_save,pre_saveの使い分けについて[仮説] 本題シグナルについての参考資料 https://code-examples.net/ja/docs/django~2.0/topics/signals 受信と受信機機能の接続というものがあるらしい。ここでpre_save,post_save,m2m_changedを使う…

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

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モデルに提供しているインターフェース。自分…

class についてちょっと整理する

models.pyにでclassを設定する目的はデータベースを作るために行われる。 具体的にはテーブルのカラムを定めること。 そしてデータが入れられればデータベースとなる。models.py class Blog(models.Model): title = models.CharField(max_length=30) content…

セッションについてのメモ

色々なコードが一体何を表すのか分かっていないので調べたものはメモとして残す。views.pyにて ページに接続するたびにat以降が変わる print(request.session) <django.contrib.sessions.backends.db.SessionStore object at 0x10dc0aa90>print(request.session.id) AttributeError: 'SessionStore' object has no attribute 'id'セッ</django.contrib.sessions.backends.db.sessionstore>…

サーチ機能を実装する

データベースからブログの記事内容だったり、商品を検索して結果を表示したい。その場合には検索キーワードに合致する結果を表示する必要がある。 キーワードに合致するものだけ抽出する方法は、objects.filter()を使えば解決できる。 結果を表示するにはLis…

urls.pyのincludeに変更点あり

path("search/", include("search.urls", namespace="search")) と記述したところエラーが出てきた。今回は path("search/", include(("search.urls", "search"))) これで対応しました。 詳しいことはここにあり。 Django2.0のプロジェクトのurls.pyにおける…

templates cssやjsをbase.htmlに組み込む方法

base.htmlにcssやjsなどBootstrapの機能を追加する。 方法はどうすればいいのか?前提条件 base.htmlにはbootstrapのコードを書かず、別にcss.html,js.htmlを準備する。_________________________________解決案 {% includ…

templates にbase.htmlを備える

pythonは誰が見ても読みやすくなるように作られている。そしてそれを実現するためにもコードをスッキリ書くことが求められる。可読性が高いものはメンテナンスしやすくなるメリットを享受できる。同じ内容を二度も三度も書くのは避けるべきだ。 htmlに焦点を…

slugを使って詳細ページurlの変更

urlを任意に変更する方法はどうすればよいのか? urls.py ではurlpatterns = [ path("blog/", BlogDetailView) ,...] の方式でurlを設定しているけれども、'bog/任意の文字列' という形で決めたい場合どうすればいいのか?参考url 【django2.0】便利なパスコ…

admin.pyメモ まとめ

技法1 admin の表示を少し変える やりたいことmodels.pyで規定したmodelの要素はadminページで一覧で確認することが出来ない。 adminページ上で任意の項目を一覧表示できるようにするにはどうしたら良いのか?例えばmodelであるBlogにtitle ,description, pr…

任意の情報だけを表示させる方法(ListView)

問題点例えば、ブログの下書きと公開記事があるとする。 これを任意に表示させるようにしたい。 具体的にはBooleanFieldを使ってチェックマークをつけたものだけ下書きとして集めて下書き一覧ページを作りたい。 条件としてはListViewで表示させること。今回…