0
之間也是有差別的調用模型保存像之間的差異:Django的:調用self.model.save()和self.model.save(* ARGS,** kwargs)
self.model.save(*args,**kwargs)
和:
self.model.save()
之間也是有差別的調用模型保存像之間的差異:Django的:調用self.model.save()和self.model.save(* ARGS,** kwargs)
self.model.save(*args,**kwargs)
和:
self.model.save()
最明顯的區別是,在第一種情況下你逝去的位置和關鍵字參數。如果您想知道什麼參數Model.save()
需要什麼以及他們做了什麼,最簡單的事情就是閱讀源代碼。然後,你會發現這樣的:
def save(self, force_insert=False, force_update=False, using=None):
"""
Saves the current instance. Override this in a subclass if you want to
control the saving process.
The 'force_insert' and 'force_update' parameters can be used to insist
that the "save" must be an SQL insert or update (or equivalent for
non-SQL backends), respectively. Normally, they should not be set.
"""
if force_insert and force_update:
raise ValueError("Cannot force both insert and updating in model saving.")
self.save_base(using=using, force_insert=force_insert, force_update=force_update)
第三個參數,using
,未記錄,它指定要使用(如果你有一個以上的數據庫連接)的數據庫連接。
爲了使長話短說:
my_model_instance.save()
沒有參數當你重寫你的模型類的save
方法,你definitly要接受和基類save
調用時傳遞相同的參數,即:
類爲MyModel(models.Model): 高清保存(個體經營,* ARGS,** KW): do_something_here() 超(爲MyModel,個體經營).save(* ARGS,** KW) do_something_else的()
在什麼時候? –