python - Django - 允许手动设置子类的 auto_now 属性
问题描述
我正在使用 Django 1.10
在我们的基本模型(少数模型继承自)中,我们设置
class BaseModel(models.Model):
created_at = models.DateTimeField(db_index=True, auto_now_add=True)
现在,在特定的子类模型中,我需要覆盖它的保存并更新“created_at”:
class Item(BaseModel):
title = models.CharField(max_length=200)
identifier = models.CharField(max_length=15)
def save(self, *args, **kwargs):
existing_item = Item.objects.active_and_deleted().get(
identifier=self.identifier)
existing_item.created_at = now()
super(Item, existing_item).save(args, kwargs)
更新后的实例 created_at 是“无”。我试过'editable = True'没有成功。任何想法?
解决方案
通过以下示例,更改 的默认参数DateTimeField
,django 将允许您手动编辑它:django.utils.timezone.now()
在save()
方法 中分配属性 with
import django
class BaseModel(models.Model):
created_at = models.DateTimeField(db_index=True,
default=django.utils.timezone.now())
推荐阅读
- kubernetes - 关于 kubectl 的查询
- okta - 通过 api 为在 okta 中注册的特定应用启用 MFA
- c# - 将扩展方法中的事件和函数分配为参数
- sql - SQL查询多个选择语句
- javascript - 如何从节点 js 中的另一个文件调用 javascript 类函数?
- c# - 如何在 windowsform 文本框中执行搜索
- salesforce - 一旦机会行项目将使用最大金额产品创建更新机会的帐户
- python-3.x - 我想在列表中找到倒数第二个元素
- sql - 有时使用 nhibernate 的 SaveOrUpdate 会跳过随机值插入数据库
- javascript - 从动态添加的表单字段将数据从视图传递到控制器?