例如这段代码:
new_log = ActivityLog(user=self.user,
activity=activity)
new_log.save()
我可以将其链接为new_log = ActivityLog(...)。save()?
我相信我尝试了上述内容,但它不起作用。有没有办法让它成为1班轮?
答案 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上的文档。它被称为:
创建对象并将其全部保存在一个步骤中的便捷方法。