2012-01-30 144 views
1

將模型方法中的實例更改的邏輯是正確的嗎?django模型方法

django文檔中的例子都是不改變實際實例的方法,而只是返回一些特定的信息。

即。從Django文檔模型方法的例子:

def is_midwestern(self): 
     "Returns True if this person is from the Midwest." 
     return self.state in ('IL', 'WI', 'MI', 'IN', 'OH', 'IA', 'MO') 

什麼,我想這樣做

def publish(self): 
     "Publishes this video." 
     self.published = True 
     # some other related business logic here 

這算是好不好?還是應該去其他地方?

回答

4

是的,它是一種很好的面向對象設計,可以將對象的操作抽象爲方法,特別是隻影響對象的操作。

如果您只是在執行簡單的getter/setter方法(我們不是在這裏寫Java),那麼這不是必須的,但是由於您提到還有其他業務邏輯涉及,所以我認爲這是一個好方法設計決定。