欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

django orm模塊中的 is_delete用法

 更新時(shí)間:2020年05月20日 14:21:13   作者:平淡中的樂(lè)趣  
這篇文章主要介紹了django orm模塊中的 is_delete用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

數(shù)據(jù)庫(kù)刪除數(shù)據(jù)咱都知道,簡(jiǎn)單的說(shuō)就是當(dāng)一條數(shù)據(jù)對(duì)企業(yè)沒(méi)用后,一般人可能會(huì)選擇刪除這條數(shù)據(jù)。

但是刪除后,萬(wàn)一以后又突然有用呢。所以我們這時(shí)候會(huì)選擇在寫(xiě)orm模塊的時(shí)候,加入is_delete字段

is_delete = models.BooleanField(default=False,verbose_name='是否刪除')

這樣以后咱如果要?jiǎng)h除一條數(shù)據(jù)了,就設(shè)置一下

is_delete=1

就表示這條數(shù)據(jù)在邏輯上刪除了,簡(jiǎn)單的說(shuō)就是你再怎么搜數(shù)據(jù)庫(kù)也搜不到了,如果以后還用,就再設(shè)置

is_delete=0

就可以了!

補(bǔ)充知識(shí):django中當(dāng)model設(shè)置了ordering后,使用distinct()和annotate()問(wèn)題記錄

model類(lèi)如下,我在class Meta中設(shè)置了ordering = ['-date_create'],即模型對(duì)象返回的記錄結(jié)果集是按照這個(gè)字段排序的。

class SystemUserPushHistory(models.Model):
 
  id = models.UUIDField(default=uuid.uuid4, primary_key=True)
  host_name = models.CharField(max_length=128, null=False)
  system_username = models.CharField(max_length=128, null=False)
  method = models.CharField(max_length=32, null=False)
  is_success = models.BooleanField(default=False)
  date_create = models.DateTimeField(auto_now_add=True, editable=False)
  message = models.CharField(max_length=4096, null=True)
 
  class Meta:
    db_table = "assets_systemuser_push_history"
    ordering = ['-date_create']
 
  def __str__(self):
    ret = self.system_username + " => " + self.host_name
    return ret

當(dāng)業(yè)務(wù)有需求如對(duì)host_name進(jìn)行分組顯示,在代碼中用到了annotate,如下。

>>> from django.db.models import Count 
>>> from assets.models import SystemUserPushHistory
>>> p = SystemUserPushHistory.objects.values("host_name").annotate(dcount=Count(1))
>>> p
<QuerySet [{'host_name': '點(diǎn)2', 'dcount': 1}, {'host_name': '點(diǎn)3', 'dcount': 2}, {'host_name': '點(diǎn)2', 'dcount': 1}, {'host_name': '點(diǎn)3', 'dcount': 1}]>
>>> print(p.query)
SELECT `assets_systemuser_push_history`.`host_name`, COUNT(1) AS `dcount` FROM `assets_systemuser_push_history` GROUP BY `assets_systemuser_push_history`.`host_name`, `assets_systemuser_push_history`.`date_create` ORDER BY `assets_systemuser_push_history`.`date_create` DESC

可以看到,所得到的結(jié)果并不像我們預(yù)期的一樣,之后把執(zhí)行的sql輸出出來(lái)可以看到在group by的時(shí)候是對(duì)host_name和date_create進(jìn)行分組,原因就是因?yàn)槲覀冊(cè)趍odel類(lèi)中設(shè)置了ordering,去掉之后代碼運(yùn)行正常。

使用distinct和上面的情況類(lèi)似,就不列出來(lái)了。

以上這篇django orm模塊中的 is_delete用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pytorch中節(jié)約顯卡內(nèi)存的方法和技巧

    pytorch中節(jié)約顯卡內(nèi)存的方法和技巧

    顯存不足是很多人感到頭疼的問(wèn)題,畢竟能擁有大量顯存的實(shí)驗(yàn)室還是少數(shù),而現(xiàn)在的模型已經(jīng)越跑越大,模型參數(shù)量和數(shù)據(jù)集也越來(lái)越大,所以這篇文章給大家總結(jié)了一些pytorch中節(jié)約顯卡內(nèi)存的方法和技巧,需要的朋友可以參考下
    2023-11-11
  • Python計(jì)算一個(gè)給定時(shí)間點(diǎn)前一個(gè)月和后一個(gè)月第一天的方法

    Python計(jì)算一個(gè)給定時(shí)間點(diǎn)前一個(gè)月和后一個(gè)月第一天的方法

    這篇文章主要介紹了Python計(jì)算一個(gè)給定時(shí)間點(diǎn)前一個(gè)月和后一個(gè)月第一天的方法,涉及Python使用datetime模塊計(jì)算日期時(shí)間的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • Python實(shí)現(xiàn)簡(jiǎn)單查找最長(zhǎng)子串功能示例

    Python實(shí)現(xiàn)簡(jiǎn)單查找最長(zhǎng)子串功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單查找最長(zhǎng)子串功能,涉及字符串遍歷、統(tǒng)計(jì)等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • Python 線程池用法簡(jiǎn)單示例

    Python 線程池用法簡(jiǎn)單示例

    這篇文章主要介紹了Python 線程池用法,結(jié)合簡(jiǎn)單實(shí)例形式分析了Python線程池相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • python 實(shí)現(xiàn)以相同規(guī)律打亂多組數(shù)據(jù)

    python 實(shí)現(xiàn)以相同規(guī)律打亂多組數(shù)據(jù)

    這篇文章主要介紹了python 實(shí)現(xiàn)以相同規(guī)律打亂多組數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 詳解Django-channels 實(shí)現(xiàn)WebSocket實(shí)例

    詳解Django-channels 實(shí)現(xiàn)WebSocket實(shí)例

    這篇文章主要介紹了詳解Django-channels實(shí)現(xiàn)WebSocket實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Django項(xiàng)目實(shí)戰(zhàn)之配置文件詳解

    Django項(xiàng)目實(shí)戰(zhàn)之配置文件詳解

    這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目實(shí)戰(zhàn)之配置文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Kmeans聚類(lèi)算法python sklearn用戶(hù)畫(huà)像教程

    Kmeans聚類(lèi)算法python sklearn用戶(hù)畫(huà)像教程

    這篇文章主要介紹了Kmeans聚類(lèi)算法python sklearn用戶(hù)畫(huà)像教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Python Pygame實(shí)戰(zhàn)之超級(jí)炸彈人游戲的實(shí)現(xiàn)

    Python Pygame實(shí)戰(zhàn)之超級(jí)炸彈人游戲的實(shí)現(xiàn)

    如今的玩家們?cè)跓o(wú)聊的時(shí)候會(huì)玩些什么游戲呢?王者還是吃雞是最多的選擇。但在80、90年代的時(shí)候多是一些很簡(jiǎn)單的游戲:《超級(jí)瑪麗》、《魂斗羅》等。本文將利用Pygame制作另一個(gè)經(jīng)典游戲—炸彈人,感興趣的可以了解一下
    2022-03-03
  • 淺談Python實(shí)現(xiàn)2種文件復(fù)制的方法

    淺談Python實(shí)現(xiàn)2種文件復(fù)制的方法

    這篇文章主要介紹了淺談Python實(shí)現(xiàn)2種文件復(fù)制的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01

最新評(píng)論