[英]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.