ホームページ  >  記事  >  バックエンド開発  >  Django がデータベースにクエリを実行するときのさまざまな種類の並べ替えの導入

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

伊谢尔伦
伊谢尔伦オリジナル
2018-05-18 16:53:104179ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。