簡體   English   中英

檢查具有OneToOneField的對象是新對象還是已經存在

[英]Check if object with OneToOneField is new or already exists

檢查對象是否為新對象的常見模式是測試:

self.pk is not None

django模型的自定義save()方法中所述,您應該如何識別新對象?

但是,當對象與其他某個對象一對一關系時,情況並非如此,例如:

class X(models.Model):
     bla = models.OneToOneField(Bla)

然后,如果要創建該對象實例並將其保存到數據庫中,請執行以下操作:

x = X(bla=someBla)
x.save()

x.pk從一開始就不是null,而是x.pk = someBla.pk。

那么,是否有可能檢查這樣的對象是新對象還是已編輯對象?

new  =  not bool(X.objects.filter(pk=self.pk).count())

在這種情況下,save方法中的self.pk將為None,但請確保在X類的save()方法中調用super.save() 之前進行檢查。

暫無
暫無

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

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