... 参照します。これらはブログアプリケーションを構成するものです。 from datetime import date from django.db import models class Blog ( models . Model ): name = models . CharField ( max_length = 100 ) tagline = models . TextField () def __str__ ( self ): r ... max_length = 200 ) email = models . EmailField () def __str__ ( self ): return self . name class Entry ( models . Model ): blog = models . ForeignKey ( Blog , on_delete = models . CASCADE ) headline = models . CharField ( max_length = 255 ) body_text ... ド引数を渡してインスタンス化し、そのデータをデータベースに保存するために save() を呼び出します。 以下はモデルがDjangoアプリ blog 内の models.py ファイルに存在する場合の例です。 >>> from blog.models import Blog >>> b = Blog ( name = "Beatles Blog" , ta ... ... 参照します。これらはブログアプリケーションを構成するものです。 from datetime import date from django.db import models class Blog ( models . Model ): name = models . CharField ( max_length = 100 ) tagline = models . TextField () def __str__ ( self ): r ... max_length = 200 ) email = models . EmailField () def __str__ ( self ): return self . name class Entry ( models . Model ): blog = models . ForeignKey ( Blog , on_delete = models . CASCADE ) headline = models . CharField ( max_length = 255 ) body_text ... ド引数を渡してインスタンス化し、そのデータをデータベースに保存するために save() を呼び出します。 以下はモデルがDjangoアプリ blog 内の models.py ファイルに存在する場合の例です。 >>> from blog.models import Blog >>> b = Blog ( name = "Beatles Blog" , ta ... ... キュメントを読む前にこの 2 つを読んでおくことをおすすめします。 このリファレンスでは、 データベースクエリガイド で提供された Blogモデルの例 を使用します。 QuerySet が評価されるタイミング ¶ 内部的には、 QuerySet は実際にデータベースにアクセスすることなく ... 性を使って QuerySet.values_list() を再生成すると、返り値は QuerySet.values() に置き換えられます: >>> import pickle >>> qs = Blog . objects . values_list ( "id" , "name" ) >>> qs <QuerySet [(1, 'Beatles Blog')]> >>> reloaded_qs = Blog . objects . all ( ... eloaded_qs . query = pickle . loads ( pickle . dumps ( qs . query )) >>> reloaded_qs <QuerySet [{'id': 1, 'name': 'Beatles Blog'}]> バージョン間でpickle化されたデータを共有することはできません pickle 化された QuerySet オブジェクトは、 pickle 化した D ... ... キュメントを読む前にこの 2 つを読んでおくことをおすすめします。 このリファレンスでは、 データベースクエリガイド で提供された Blogモデルの例 を使用します。 QuerySet が評価されるタイミング ¶ 内部的には、 QuerySet は実際にデータベースにアクセスすることなく ... 性を使って QuerySet.values_list() を再生成すると、返り値は QuerySet.values() に置き換えられます: >>> import pickle >>> qs = Blog . objects . values_list ( "id" , "name" ) >>> qs <QuerySet [(1, 'Beatles Blog')]> >>> reloaded_qs = Blog . objects . all ( ... eloaded_qs . query = pickle . loads ( pickle . dumps ( qs . query )) >>> reloaded_qs <QuerySet [{'id': 1, 'name': 'Beatles Blog'}]> バージョン間でpickle化されたデータを共有することはできません pickle 化された QuerySet オブジェクトは、 pickle 化した D ... ... ャのことです。これは2つのケースで起こります: ForeignKey リレーションの "反対側"。つまり: from django.db import models class Blog ( models . Model ): # ... pass class Entry ( models . Model ): blog = models . ForeignKey ( Blog , on_delete = models . CA ... SCADE , null = True ) 上記の例では、以下のメソッドがマネージャ blog.entry_set で利用可能です。 ManyToManyField リレーションの両側: class Topping ( models . Model ): # ... pass class Pizza ( ... e ) ¶ 非同期バージョン : aadd() リレーション先オブジェクトのセットに、指定したモデルオブジェクトを追加します。 例: >>> b = Blog . objects . get ( id = 1 ) >>> e = Entry . objects . get ( id = 234 ) >>> b . entry_set . add ( e ) # Associates Entry e w ... ... ャのことです。これは2つのケースで起こります: ForeignKey リレーションの "反対側"。つまり: from django.db import models class Blog ( models . Model ): # ... pass class Entry ( models . Model ): blog = models . ForeignKey ( Blog , on_delete = models . CA ... SCADE , null = True ) 上記の例では、以下のメソッドがマネージャ blog.entry_set で利用可能です。 ManyToManyField リレーションの両側: class Topping ( models . Model ): # ... pass class Pizza ( ... e ) ¶ 非同期バージョン : aadd() リレーション先オブジェクトのセットに、指定したモデルオブジェクトを追加します。 例: >>> b = Blog . objects . get ( id = 1 ) >>> e = Entry . objects . get ( id = 234 ) >>> b . entry_set . add ( e ) # Associates Entry e w ... ... 最初に、プロジェクトのテンプレートディレクトリに置き換え用テンプレートを作成して、テンプレートのオーバーライドを検討します。 blog/post.html と blog/list.html というテンプレートを提供している blog というサードパーティアプリケーションのテンプレートをオー ... うになります: from pathlib import Path BASE_DIR = Path ( __file__ ) . resolve () . parent . parent INSTALLED_APPS = [ ... , "blog" , ... , ] TEMPLATES = [ { "BACKEND" : "django.template.backends.django.DjangoTemplates" , "DIRS" : [ BASE_DIR / "template ... す。変更が必要な設定は DIRS です。 これらの設定はプロジェクトのルートに templates ディレクトリがあることを前提としています。 blog アプリのテンプレートを上書きするには、 templates ディレクトリにフォルダを作成し、テンプレートファイルをそのフォルダに追加し ... ... 最初に、プロジェクトのテンプレートディレクトリに置き換え用テンプレートを作成して、テンプレートのオーバーライドを検討します。 blog/post.html と blog/list.html というテンプレートを提供している blog というサードパーティアプリケーションのテンプレートをオー ... うになります: from pathlib import Path BASE_DIR = Path ( __file__ ) . resolve () . parent . parent INSTALLED_APPS = [ ... , "blog" , ... , ] TEMPLATES = [ { "BACKEND" : "django.template.backends.django.DjangoTemplates" , "DIRS" : [ BASE_DIR / "template ... す。変更が必要な設定は DIRS です。 これらの設定はプロジェクトのルートに templates ディレクトリがあることを前提としています。 blog アプリのテンプレートを上書きするには、 templates ディレクトリにフォルダを作成し、テンプレートファイルをそのフォルダに追加し ... ... ます。任意でページ引数を取る以下の URL パターンを考えてみます: from django.urls import re_path urlpatterns = [ re_path ( r "^blog/(page-([0-9]+)/)?$" , blog_articles ), # bad re_path ( r "^comments/(?:page-(?P<page_number>[0-9]+)/)?$" , comments ), # g ... ood ] 両方のパターンでネストされた引数を使っており、解決します: 例えば、 blog/page-2/ は 2 つの潜在的な引数 ( page-2/ と 2 ) で blog_articles と一致する結果となります。 comments の 2 番目のパターンは、 ... キーワード引数 page_number で comments/page-2/ と一致します。 この例での外部の引数は、キャプチャされない引数 (?:...) です。 blog_articles ビューは一番外側のキャプチャされた引数が解決されるのを必要としますが (この例では page-2/ か引数なし)、 comments は ... ... ます。任意でページ引数を取る以下の URL パターンを考えてみます: from django.urls import re_path urlpatterns = [ re_path ( r "^blog/(page-([0-9]+)/)?$" , blog_articles ), # bad re_path ( r "^comments/(?:page-(?P<page_number>[0-9]+)/)?$" , comments ), # g ... ood ] 両方のパターンでネストされた引数を使っており、解決します: 例えば、 blog/page-2/ は 2 つの潜在的な引数 ( page-2/ と 2 ) で blog_articles と一致する結果となります。 comments の 2 番目のパターンは、 ... キーワード引数 page_number で comments/page-2/ と一致します。 この例での外部の引数は、キャプチャされない引数 (?:...) です。 blog_articles ビューは一番外側のキャプチャされた引数が解決されるのを必要としますが (この例では page-2/ か引数なし)、 comments は ... 2026年10月08日