Djangoデータベース照会時の各種ソート

2077 ワード

entry_に従ってdateは小さい頃から大きなクエリーデータまで、次のように書くことができます.
 
1 Content.objects.order_by( 'entry_date' )
大から小へのソート:
1 Content.objects.order_by( '-entry_date' )
他の種類のソートについて説明します
ランダムソート:
1 Content.objects.order_by( '?' )
でもorder_by(?)この方法は、バックエンド・データベースに依存してexpensiveおよびslowである可能性があります.
リレーショナル・テーブルのフィールドでソート
1 2 3 4 5 6 7 class Category(Base):      code = models.CharField(primary_key = True ,max_length = 100 )      title = models.CharField(max_length = 255 ) class Content(Base):      title = models.CharField(max_length = 255 )      description = models.TextField()      category = models.ForeignKey(Category, on_delete = models.CASCADE)
1 2 3 4 5 6 7 8 # Category code, Content , Content.objects.order_by( 'category__title' ) # , Content.objects.order_by( 'category' ) # Content.objects.order_by( 'category__code' ) # join , Content.objects.order_by( 'category_title' )
Note:単一下線でも二重下線でも、関連テーブルのデータをフロントエンドで取得できます.
 
変換元:http://www.php.cn/python-tutorials-362108.html