... おけるルックアップに相当する SQL を示しています。同じパターンがすべての空間ルックアップに適用されます。 ケース ルックアップ 等価なSQL N, B rast__contains=rst ST_Contains(rast, rst) N, B rast__1__contains=(rst, 2) ST_Contains(rast, 1, rst, 2) B, C rast_ ... ングボックスを完全に含むかどうかをテストします。 実装例: Zipcode . objects . filter ( poly__bbcontains = geom ) バックエンド 等価なSQL PostGIS poly ~ geom MariaDB MBRContains(poly, geom) MySQL MBRContains(poly, geom) SpatiaLite MbrContains(poly, geom) b ... ディングボックスと重なるかどうかをテストします。 実装例: Zipcode . objects . filter ( poly__bboverlaps = geom ) バックエンド 等価なSQL PostGIS poly && geom MariaDB MBROverlaps(poly, geom) MySQL MBROverlaps(poly, geom) SpatiaLite MbrOverlaps(poly, geom) ... ... おけるルックアップに相当する SQL を示しています。同じパターンがすべての空間ルックアップに適用されます。 ケース ルックアップ 等価なSQL N, B rast__contains=rst ST_Contains(rast, rst) N, B rast__1__contains=(rst, 2) ST_Contains(rast, 1, rst, 2) B, C rast_ ... ングボックスを完全に含むかどうかをテストします。 実装例: Zipcode . objects . filter ( poly__bbcontains = geom ) バックエンド 等価なSQL PostGIS poly ~ geom MariaDB MBRContains(poly, geom) MySQL MBRContains(poly, geom) SpatiaLite MbrContains(poly, geom) b ... ディングボックスと重なるかどうかをテストします。 実装例: Zipcode . objects . filter ( poly__bboverlaps = geom ) バックエンド 等価なSQL PostGIS poly && geom MariaDB MBROverlaps(poly, geom) MySQL MBROverlaps(poly, geom) SpatiaLite MbrOverlaps(poly, geom) ... ... ースや Python の標準関数とは異なる方法で計算されます。この関数は日曜日に 1 、月曜日に 2 、土曜日に 7 を返します。 Pythonでの等価な計算は以下のようになります: >>> from datetime import datetime >>> dt = datetime ( 2015 , 6 , 15 ) >>> ( dt . isoweekday () ... その週の日数の過半数(4日以上)がその年に含まれています。返される値は1から52または53の範囲です。 各 lookup_name には、冗長な等価表現の代わりに通常使用すべき Extract サブクラス(下記)があります。たとえば Extract(..., lookup_name='year') の代わりに Extr ... on , tzinfo = None , ** extra ) [ソース] ¶ lookup_name = 'quarter' これらは論理的には Extract('date_field', lookup_name) と等価です。各クラスは DateField と DateTimeField に __(lookup_name) として登録された Transform でもあります。たとえば __year のよ ... ... ースや Python の標準関数とは異なる方法で計算されます。この関数は日曜日に 1 、月曜日に 2 、土曜日に 7 を返します。 Pythonでの等価な計算は以下のようになります: >>> from datetime import datetime >>> dt = datetime ( 2015 , 6 , 15 ) >>> ( dt . isoweekday () ... その週の日数の過半数(4日以上)がその年に含まれています。返される値は1から52または53の範囲です。 各 lookup_name には、冗長な等価表現の代わりに通常使用すべき Extract サブクラス(下記)があります。たとえば Extract(..., lookup_name='year') の代わりに Extr ... on , tzinfo = None , ** extra ) [ソース] ¶ lookup_name = 'quarter' これらは論理的には Extract('date_field', lookup_name) と等価です。各クラスは DateField と DateTimeField に __(lookup_name) として登録された Transform でもあります。たとえば __year のよ ... ... ender ( request , "myapp/index.html" , { "foo" : "bar" , }, content_type = "application/xhtml+xml" , ) この例は次のコードと等価です。 from django.http import HttpResponse from django.template import loader def my_view ( request ): # View code here... ... ortcuts import get_object_or_404 def my_view ( request ): obj = get_object_or_404 ( MyModel , pk = 1 ) この例は次のコードと等価です。 from django.http import Http404 def my_view ( request ): try : obj = MyModel . objects . get ( pk = 1 ) except MyMode ... きます: queryset = Book . objects . filter ( title__startswith = "M" ) get_object_or_404 ( queryset , pk = 1 ) 上の例は下記と等価なので、少し不自然ではあります: get_object_or_404 ( Book , title__startswith = "M" , pk = 1 ) しかし、他の場所から QuerySet ... ... ender ( request , "myapp/index.html" , { "foo" : "bar" , }, content_type = "application/xhtml+xml" , ) この例は次のコードと等価です。 from django.http import HttpResponse from django.template import loader def my_view ( request ): # View code here... ... ortcuts import get_object_or_404 def my_view ( request ): obj = get_object_or_404 ( MyModel , pk = 1 ) この例は次のコードと等価です。 from django.http import Http404 def my_view ( request ): try : obj = MyModel . objects . get ( pk = 1 ) except MyMode ... きます: queryset = Book . objects . filter ( title__startswith = "M" ) get_object_or_404 ( queryset , pk = 1 ) 上の例は下記と等価なので、少し不自然ではあります: get_object_or_404 ( Book , title__startswith = "M" , pk = 1 ) しかし、他の場所から QuerySet ... ... レーション先のフィールドタイプにトランスフォームが登録されていれば、最初の annotate() は省略できます。よって以下の例はすべて等価です: >>> from django.db.models import CharField , Count >>> from django.db.models.functions import Lower >>> CharField . re ... と、他のメソッドと同様に機能します。すなわち、 select_related('foo', 'bar') は select_related('foo').select_related('bar') と等価です。 多くの関連オブジェクトを含む select_related() を呼び出したい場合や、すべての関連オブジェク トを把握していないケースも ... ... select = { "val" : "select col from sometable where othercol = %s " }, ... select_params = ( someparam ,), ... ) 下記と等価です: >>> qs . annotate ( val = RawSQL ( "select col from sometable where othercol = %s " , ( someparam ,))) RawSQL を使う主 ... ... レーション先のフィールドタイプにトランスフォームが登録されていれば、最初の annotate() は省略できます。よって以下の例はすべて等価です: >>> from django.db.models import CharField , Count >>> from django.db.models.functions import Lower >>> CharField . re ... と、他のメソッドと同様に機能します。すなわち、 select_related('foo', 'bar') は select_related('foo').select_related('bar') と等価です。 多くの関連オブジェクトを含む select_related() を呼び出したい場合や、すべての関連オブジェク トを把握していないケースも ... ... select = { "val" : "select col from sometable where othercol = %s " }, ... select_params = ( someparam ,), ... ) 下記と等価です: >>> qs . annotate ( val = RawSQL ( "select col from sometable where othercol = %s " , ( someparam ,))) RawSQL を使う主 ... ... ime . date ( 2005 , 1 , 1 ) ... ) # No need to call e.save() at this point -- it's already been saved. これは下記のコードと等価です(しかし、よりシンプルです): >>> b = Blog . objects . get ( id = 1 ) >>> e = Entry ( blog = b , headline = "Hello" , bo ... トを別のオブジェクトに追加せずに削除することはできません。上の例では、 b.entry_set() から e を削除することは e.blog = None と等価であり、 blog ForeignKey には null=True がないので、これは無効です。 ForeignKey オブジェクトの場合、このメソッドは bulk 引数 ... ... のように使用します。 Entry . objects . filter ( pub_date__year = 2006 ) デフォルトの manager クラスの場合、これは次のコードと等価です。 Entry . objects . all () . filter ( pub_date__year = 2006 ) フィルタの連結 ¶ フィルタを行った QuerySet の結果自体も Q ... 引数がダブルアンダースコアを含まない場合、ルックアップタイプは exact が指定されたものとみなされます。 たとえば、次の2つの文は等価です。 >>> Blog . objects . get ( id__exact = 14 ) # Explicit form >>> Blog . objects . get ( id = 14 ) # __exact is implied ... カットを用意しています。pk とは "primary key" を表します。 例の Blog モデルでは、主キーは id フィールドなので、次の3つの文は等価です: >>> Blog . objects . get ( id__exact = 14 ) # Explicit form >>> Blog . objects . get ( id = 14 ) # __exact is implied ... 2026年10月08日