Django
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…
path("search/", include("search.urls", namespace="search")) と記述したところエラーが出てきた。今回は path("search/", include(("search.urls", "search"))) これで対応しました。 詳しいことはここにあり。 Django2.0のプロジェクトのurls.pyにおける…
base.htmlにcssやjsなどBootstrapの機能を追加する。 方法はどうすればいいのか?前提条件 base.htmlにはbootstrapのコードを書かず、別にcss.html,js.htmlを準備する。_________________________________解決案 {% includ…
pythonは誰が見ても読みやすくなるように作られている。そしてそれを実現するためにもコードをスッキリ書くことが求められる。可読性が高いものはメンテナンスしやすくなるメリットを享受できる。同じ内容を二度も三度も書くのは避けるべきだ。 htmlに焦点を…
urlを任意に変更する方法はどうすればよいのか? urls.py ではurlpatterns = [ path("blog/", BlogDetailView) ,...] の方式でurlを設定しているけれども、'bog/任意の文字列' という形で決めたい場合どうすればいいのか?参考url 【django2.0】便利なパスコ…
技法1 admin の表示を少し変える やりたいことmodels.pyで規定したmodelの要素はadminページで一覧で確認することが出来ない。 adminページ上で任意の項目を一覧表示できるようにするにはどうしたら良いのか?例えばmodelであるBlogにtitle ,description, pr…
問題点例えば、ブログの下書きと公開記事があるとする。 これを任意に表示させるようにしたい。 具体的にはBooleanFieldを使ってチェックマークをつけたものだけ下書きとして集めて下書き一覧ページを作りたい。 条件としてはListViewで表示させること。今回…
詳細ページの書き方は複数ある。 detailviewを使って速く簡単に作ってしまう方法やrenderを使ってどのようなプロセスで動くか分かる方法もある。 (参考) ブラックボックス化を避けるためrenderをベースとして、データベースにアクセスするような動きを見せな…
全然分かってないのでメモ。 ドキュメント https://docs.djangoproject.com/ja/2.0/topics/http/shortcuts/#get-object-or-404Calls get() on a given model manager, but it raises Http404 instead of the model's DoesNotExist exception. 引数はklass, *…
よく忘れるのでメモ。List_Viewで表示させる方法は、いくつかあって簡単な方法を記録する。{{ object_list }} こうすると表示は <QuerySet,> となってしまう。これを{% for obj in object_list %} {{ obj.title }} {{ obj.contents }} {% endfor %} こうす…
Django Static file の設定方法(settings.py) - diadia static fileを表示させる方法 - diadia
関連記事 ForeignKeyフィールドのcreate models.pyを初めて使う場合の粗すぎる大枠Django model.pyを初めて使う人向けに - diadia field()のオプションについて概要:()の中身の種類 https://docs.djangoproject.com/ja/2.1/ref/models/fields/#field-options…
settings.py で設定する項目 STATIC_URL = '/static/' MEDIA_URL = '/media/" STATICFILES_DIR =[ os.path.join(BASE_DIR, "static_xxx")] STATIC_ROOT =os.path.join(os.path.dirname(BASE_DIR), "static_yyy",static_root) MEDIA_ROOT =os.path.join(os.pa…
どうやってユーザを作成するか。 とりあえず作り方のアプローチとしては2通りある。 djangoビルトインのUserCreationFormを使う方法 Djangoの認証システムを使用する | Django documentation | Djangoforms.pyから作成する方法(自作) 自作する方法を前半で…
labelの働きがわからなかった。 htmlを学習した現在働きが同じだと思われる。まずhtmlの使い方を記述する。 <form> <label for="fullname">お名前</label> <input id="fullname" type="text" name="name"> <label for="passwd">パスワード</label> <input id="passwd" type="password" name="password"> <button type="submit"> ログイン</button> </form> htmlをこのように記述すると、入力欄(この場合…
ユーザーログイン機能をdjangoプロジェクトに実装する 最初に主要ファイルにどのように書けばユーザーログイン実現するかを書く 次にユーザー認証の仕組みを書く ユーザーログイン実現の書き方編集ファイルはこれらになる。 forms.py views.py urls.py login…
フォームについて リンク先forms.pyに使うlabelの働き forms.py外で定めなければならないもの formの入力データを返す方法(cleaned_data) フォームにはforms.pyを使う方法とformのhtmlをテンプレートに挿入する方法がある。 ①forms.pyについて記載する。 fo…
必要なことはviews.pyにてdef と return の間に以下の内容を追加するだけで良い。 if request.method == "POST": print(request.POST) これだけでターミナルに表示されるようになる。しかしながらこれだけではターミナルに入力されたデータがどのようなもの…
概要 改正版 centos7にpostgresqlを入れてdjangoを動かす場合を想定している。 djangoでpostgresqlを使うためにdjangoのsettings.pyにpostgresqlのデータベースの諸情報を登録する手続きを取らなければならない。そしてそれは、 サーバにpostgresqlをインス…
ディレクトリ構造について説明する。src chiaki$ django-admin startproject hoge .src chiaki$ django-admin startproject hoge があり、両者の違いはdjangoを現在のディレクトリに備え付けるか否かの違いになる。前者は現在のディレクトリに備え付ける。だ…
URL dispatcher — Django 1.4.6 documentation クラスベースビューには、データ表示系のもの(ListViewやDetailView)とデータベース編集系のもの(CreateView,Updateview,DeleteView)がある。 データベース編集系には一種の特徴がある。フォームにデータ入力し…
前回CreateViewについてどう使うのか記したが、全く同じと考えて良い。 CreateView 使い方メモ - diadia
クラスベースビューでテンプレート名を指定させる場合 以下のような指定で済む template_name = "blog/blog_hoge.html" とすればよい template_nameはどんなメリットが有るのか。 クラスベースビューを使う場合、テンプレートの名前は指定される。だからテン…
ページに飛ばす方法 公式 >|python| #urls.pyのnameを使う場合 <a href="{% url 'ListView-NAME' %}"> 一覧ページへ </a> #urls.pyのnameを使わない場合 <a href="/blog/{{ object.url }}"> 一覧ページへ </a> ||< htmlの基本リンクの作り方 <a href="hoge..."> hoge </a> ページから詳細ページに飛ばす方法 >|python| {{ for a in object_list }}<a href="{% url 'wawawa' a.id %}">{{ a.ho…</a>
目的 既入力したデータを消去するところ 設定方法 views.py from .models import Blog from django.views.generic import DeleteView class BlogDeleteView(DeleteView): models = Blog success_url = reverse_lazy("hoge") urls.py url_patterns= ... path("<int:pk></int:pk>…
クラス別汎用ビューは以下の種類がある。 リストビュー :データベース一覧表示 ディテイルビュー :データベースIDごとに表示 クリエイトビュー :データ入力 アップデートビュー :データ変更 フォームビュー? デリートビュー :データ消去 テンプレート…
クラスベースビュー大枠 - diadia 上記で分類したようにCreateViewは、ListViewやDetailViewと違いデータベースに情報を入力するタイプのものだ。 そういうわけで気になったところをメモしておく。 まずListViewとDetailviewとCreateViewの相違点はどこにあ…
htmlの継承やhtmlファイルをパーツに分けて管理するには何やらいろいろあるみたいで、頭がこんがらがっている。 {% block body %} {% endblock %} {% include "hoge.html" %} {% extends "hoge.html" %} これらはどのように使い分けているのか。 htmlの重複…