色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

django-orm F對(duì)象的使用 按照兩個(gè)字段的和,乘積排序?qū)嵗?/h1>
瀏覽:116日期:2024-10-05 13:16:31

class F

F()是代表模型字段的值,也就是說(shuō)對(duì)于一些特殊的字段的操作,我們不需要數(shù)據(jù)先取到內(nèi)存中,然后操作,在存儲(chǔ)到db中了。

以下為幾個(gè)使用的經(jīng)典場(chǎng)景:

1. 統(tǒng)計(jì)點(diǎn)擊量,點(diǎn)贊(每次加1)

from django.db.models import FReporters.objects.filter(id=case_id).update(thumb_num=F(’thumb_num’) + 1)

2.一個(gè)合同字段,結(jié)束日期和終止日期的比較很容易實(shí)現(xiàn) 終止日期小于結(jié)束日期

from django.db.models import F

contract_list = Contracts.objects.filter(contract_stop_time__lt=F(’contract_end_time’))

3.如果說(shuō)按照兩個(gè)字段的和,乘積,差進(jìn)行排序,用F類是最好的解決方法,這樣不必要再添加一個(gè)字段了

# 按照總價(jià)逆序取前十個(gè)goods_list = Goods.objects.all( ).order_by( F(’num’) * F(’unit_price’) ).reversed( )[ :10] # 按照點(diǎn)贊與評(píng)論數(shù)和進(jìn)行排序hot_list = Article.objects.all( ).order_by( F(’thumb_num’) + F(’comment_num’) ).reversed( )

總的來(lái)說(shuō),F(xiàn)對(duì)象支持對(duì)數(shù)據(jù)的算術(shù)運(yùn)算,還有時(shí)間比較操作,真的是query利器。

補(bǔ)充知識(shí):Django查詢數(shù)據(jù)庫(kù)時(shí)各種種類的排序

按照entry_date從小到大查詢數(shù)據(jù),可以寫成:

Content.objects.order_by(’entry_date’)

從大到小排序:

Content.objects.order_by(’-entry_date’)

下面介紹其他種類的排序

隨機(jī)排序:

Content.objects.order_by(’?’)

但是order_by(?)這種方式也許expensive并且slow,這取決于后端數(shù)據(jù)庫(kù)。

按照關(guān)系表的字段排序

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,對(duì)Content進(jìn)行排序,只需要外鍵后加雙下劃線Content.objects.order_by(’category__title’)# 如果只是按照外鍵來(lái)排序,會(huì)默認(rèn)按照關(guān)聯(lián)的表的主鍵排序Content.objects.order_by(’category’)# 上面等價(jià)于Content.objects.order_by(’category__code’)# 雙下劃線返回的是join后的結(jié)果集,而單下劃線返回的是單個(gè)表的集合Content.objects.order_by(’category_title’)

Note: 無(wú)論是單下劃線還是雙下劃線,我們都可用{{ content.category.title }}在前端獲取到關(guān)聯(lián)表的數(shù)據(jù)。

以上這篇django-orm F對(duì)象的使用 按照兩個(gè)字段的和,乘積排序?qū)嵗褪切【幏窒斫o大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django

主站蜘蛛池模板: 久久免费国产精品一区二区 | 亚洲午夜影视 | 手机看片手机在线看片 | 免费看v片网站 | 88av视频在线观看 | 香蕉视频一级片 | 印度最猛性ⅹxxxxx | 国产综合亚洲专区在线 | 国产亚洲美女精品久久 | 男女午夜性爽快免费视频不卡 | 久国产精品视频 | 亚洲精品综合 | 亚洲一区二区三区高清视频 | 欧美成人高清手机在线视频 | 性色a| 国产欧美亚洲三区久在线观看 | 手机在线色 | 色综合久久88色综合天天 | 久久精品九九 | 国产高清视频免费 | 欧美成人免费高清二区三区 | 午夜欧美成人 | 亚洲国产毛片 | 国产在线精品香蕉综合网一区 | 韩国三级日本三级香港三级黄 | 尤物蜜芽福利国产污在线观看 | 久国产精品视频 | 国产亚洲精品久久久久久午夜 | 精品久久一区二区 | 国产成人在线免费 | 欧美日本一区二区三区道 | 国产手机在线视频 | 国产一区二区三区在线观看视频 | 美女视频黄a全部 | 99爱在线视频这里只有精品 | 久久a热6| 国产视频久久久 | 在线免费看a | 欧美亚洲国产精品 | 欧美一级情欲片在线 | a毛片视频免费观看影院 |