django模型方法

时间:2012-01-30 18:13:04

标签: django django-models

在模型方法中放置改变实例的逻辑是否正确?

django文档中的示例都是不改变实际实例但只返回某些特定信息的方法。

即。来自django docs的模型方法示例:

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

这被认为是好的吗?或者这应该去别的地方?

1 个答案:

答案 0 :(得分:4)

是的,将对象抽象操作作为方法进行抽象是一种很好的面向对象设计,特别是如果它们只影响该对象。

如果你只是做琐碎的getter / setter方法(我们不是在这里编写Java ......),那是没有必要的,但是既然你提到还有其他业务逻辑,我认为这是一个很好的设计决定。