什么是靜態方法,我們如何解釋下面的代碼?
@staticmethod
def get_model(**kwargs):
try:
return Model.objects.get(**kwargs)
except Model.DoesNotExist:
return
uj5u.com熱心網友回復:
簡而言之,也許過于簡單化staticmethod了:不需要類的物件來運行。這也意味著你不需要self爭論。
關于代碼:此方法試圖回傳與 kwargs 中指定的引數匹配的模型的單個 (.get()) 實體。
例子:
kwargs = {"id":5, "is_alive": True}
Model.objects.get(**kwargs)
#is the same as
Model.objects.get(id=5, is_alive=True)
如果沒有與引數匹配的模型實體,這可能會引發 Model.DoesNotExists 錯誤,因此使用 try/except。
如果引發 Model.DoesNotExists 錯誤,則方法回傳 None。
uj5u.com熱心網友回復:
Astaticmethod是一個未系結到物件的函式,但被封裝在其中(通常是為了減少外部命名空間的混亂,或消除任何匯入它的需要)。它沒有self普通物件方法的第一個引數。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/424965.html
標籤:Python django django模型 django-rest-framework
下一篇:jQuery學習筆記
