如何使用其方法链接对象实例化?

时间:2009-12-14 19:04:25

标签: python

例如这段代码:

new_log = ActivityLog(user=self.user,
                      activity=activity)
new_log.save()

我可以将其链接为new_log = ActivityLog(...)。save()?

我相信我尝试了上述内容,但它不起作用。有没有办法让它成为1班轮?

2 个答案:

答案 0 :(得分:6)

save()返回self,例如:

class ActivityLog (object): # EDIT: OR INHERIT FROM WHATEVER OTHER CLASS, I DONT CARE
    ...

    def save(self):
        ...
        return self

注意:这是一种名为method chaining的通用编码模式。

答案 1 :(得分:2)

Django为此目的在模型管理器上提供了一种方便的方法: - )

new_log = ActivityLog.objects.create(user=self.user, activity=activity)

create are here上的文档。它被称为:

  

创建对象并将其全部保存在一个步骤中的便捷方法。