簡體   English   中英

Django:將多個保存合並為一個數據庫操作

[英]Django: Combine multiple saves into one database action

我有一個這樣的 function——有沒有辦法將這個 function 包裝起來,以便將兩個保存合並為一個?

    def foobar(self, created_at=None):
        changed = False
        if created_at:
            changed = True
            self. created_at = created_at
            self.save()
        if self.active:
            changed = True
            self.active = False
            self.save()
        return self

我不取消縮進self.save()的原因是為了避免在沒有發生變化的情況下更新我的 object 上的updated_at字段。

if子句末尾的changedTrue ,則只能執行self.save()

def foobar(self, created_at=None):
    changed = False
    if created_at:
        changed = True
        self.created_at = created_at
    if self.active:
        changed = True
        self.active = False
    
    if changed:
        self.save()
    return self

因此,只有當兩個if子句之一觸發changed ,這才會設置為True 只有當changed設置為True時,我們才保存 object。因此,如果crated_atself.active都是真實的,我們在這里避免了額外的數據庫往返。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM