Django がデータベースにクエリを実行するときのさまざまな種類の並べ替えの導入

伊谢尔伦
リリース: 2018-05-18 16:53:10
オリジナル
4175 人が閲覧しました

entry_date に従って小さいものから大きいものまでデータをクエリします。これは次のように記述できます:

Content.objects.order_by('entry_date')
ログイン後にコピー

大きいものから小さいものへ並べ替えます:

Content.objects.order_by('-entry_date')
ログイン後にコピー

以下では他のタイプの並べ替えを紹介します

ランダムな並べ替え:

Content.objects.order_by('?')
ログイン後にコピー

ただし order_by(?) thisこの方法はバックエンド データベースによって異なり、高価で時間がかかる場合があります。

リレーショナル テーブルのフィールドで並べ替えます

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)
ログイン後にコピー
# 按照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')
ログイン後にコピー

注: 単一アンダースコアであっても二重アンダースコアであっても、フロントエンドで {{ content.category.title }} を使用してリレーショナル テーブルのデータを取得できます。 。

【おすすめ関連チュートリアル】

1. 『Python無料ビデオチュートリアル』

2.

データサイエンスにおけるPythonの応用

以上がDjango がデータベースにクエリを実行するときのさまざまな種類の並べ替えの導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!