我們團隊中最初教給我們django(隨後離開)的人使用了一個controllers.py文件來實現幫助函數。許多這些功能與類直接相關。我更願意使用@staticmethod來將這些助手與它們相關的類放在一起。例如,而不是這樣做:我應該在Django中使用controllers.py還是@staticmethod?
# controllers.py
def process_entry():
# do some exciting stuff that might not have to do with an instance
這樣調用:
from myapp.controllers import process_entry
process_entry()
我寧願這樣:
# models.py
class Entry(models.Model):
name = CharField...
# some other fields
@staticmethod
def process_entry():
# do some exciting stuff that might not have to do with an instance
調用,像這樣:
from myapp.models import Entry
Entry.process_entry()
有沒有一種首選的,標準的方法來處理s像這樣的情節還是僅僅是個人喜好?其他人是否使用controllers.py文件?那裏有什麼?
謝謝。
編輯:
可能是一個更好的例子,佣金。
# models.py
class Commission(models.Model):
check = ForeignKey
payment = ForeignKey
# other fields
class Check(models.Model):
# fields
class Payment(models.Model):
# fields
任何時候支票或付款實例被修改的調整作爲所要的任何相關委員會實例或任何時候有人想手動運行的佣金,他們可以這樣做。那麼run_commissions()應該放在哪裏呢?我更喜歡這個,但顯然這不應該被封裝在數據相關的模型中?
# models.py
class Commission(models.Model):
check = ForeignKey
payment = ForeignKey
# other fields
@staticmethod
def run_commissions():
# do stuff