django-orm Fオブジェクトの使用は、2つのフィールドの和に従って、積並び替えの例を示します。


クラスF
F()はモデルフィールドを表す値であり、つまりいくつかの特殊なフィールドの操作に対しては、データを先にメモリに取り込む必要がなく、dbに格納します。
以下はいくつかの古典的なシーンです。
1.クリック数を統計して、いいね(毎回1を加える)
from django.db.models import F
Reports.object s.filter(id=case_)id).udate(thumb_num=F('thumb_num'+1)
2.契約フィールドの終了日と終了日の比較は、終了日が終了日より小さいことを実現しやすいです。
from django.db.models import F
contractlist=Contracts.objects.filterstop_time_lt=F('contract')end_タイム
3.二つのフィールドの和、積、差によって並べ替えられたら、Fクラスを使うのが一番いい解決方法です。もう一つのフィールドを追加する必要がありません。

#           
goods_list = Goods.objects.all( ).order_by( F('num') * F('unit_price') ).reversed( )[ :10] 

#              
hot_list = Article.objects.all( ).order_by( F('thumb_num') + F('comment_num') ).reversed( )
全体的には、Fオブジェクトはデータの算術演算をサポートしています。時間の比較操作もあります。本当にquery利器です。
補足の知識:Djangoデータベースを検索する時の各種の種類の並べ替え
イベント毎にdateは小さい時から大規模なデータを調べて、書いてもいいです。
Conttent.object.order_by('entry_date
大きいものから小さいものまで並べ替え:
Conttent.object.order_by('-entry_date
他の種類の並べ替えについて説明します。
ランダムなソート:
Conttent.object.order_by('?')
でもorderby(?)この方法はexpensiveでslowかもしれません。これはバックエンドデータベースに依存します。
関係表のフィールドに従って並べ替えます。

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')
ノート:単下線でも二重下線でもいいです。先端で関連表のデータを入手できます。
以上のdjango-orm Fオブジェクトの使用は、2つのフィールドの合計に従って、積順の例は、小編集が皆さんに共有するすべての内容です。