比如说
Would be a very common pattern for a lot of tables.
1)您可以使用
created_date = models.DateTimeField(auto_now_add=True, editable=False)
2)你可以在 mod.py 中创建/修改日期(但不是由/user 创建的,因为没有请求上下文)
def save(self):
if self.id:
self.modified_date = datetime.now()
else:
self.created_date = datetime.now()
super(MyModel,self).save()
3)你可以在 admin.py 中设置创建/修改的日期,但是这不适用于非管理员更新
def save_model(self, request, obj, form, change):
if change:
obj.modified_by = request.user
obj.modified_date = datetime.now()
else:
obj.created_by = request.user
obj.created_date = datetime.now()
obj.save()
4)最后一个位置是 view.py,它可以完成所有4项任务,但不包括管理员更新。
所以实际上必须有逻辑展开,至少在3 & 4中重复(或者模型上的一个方法从两者调用,这将被忽略)
有什么更好的办法吗?(我已经使用 python/django 工作了几天,所以很容易遗漏一些显而易见的东西)