自动设置对象的创建日期以及记录对象上次更新时间的字段的最佳方式是什么?

models.py:

created_at = models.DateTimeField(False, True, editable=False)
updated_at = models.DateTimeField(True, True, editable=False)

views.py:

if request.method == 'POST':
    form = MyForm(request.POST)
    if form.is_valid():
        obj = form.save(commit=False)
        obj.user = request.user
        obj.save()
        return HttpResponseRedirect('obj_list')

我得到了一个错误:

objects_object.created_at may not be NULL

我必须自己手动设置此值吗?我认为这就是传递给DateTimeField的参数的意义(或者它们只是默认值,因为我设置了editable=False,所以它们不会显示在表单上,因此不会在请求中提交,因此不会放入表单中?)

做这件事最好的方法是什么?__init__的方法?

推荐答案

您可以分别对updated_atcreated_at使用auto_nowauto_now_add选项.

class MyModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

Python相关问答推荐

有什么方法可以修复奇怪的y轴Python matplotlib图吗?

调试回归无法解决我的问题

Pandas 按照特殊规则保留每n行

定义同侪组并计算同侪组分析

将词典写入Excel

使用Python Great Expectations和python-oracledb

这家einsum运营在做什么?E = NP.einsum(aj,kl-il,A,B)

如何使用矩阵在sklearn中同时对每个列执行matthews_corrcoef?

更改matplotlib彩色条的字体并勾选标签?

Select 用a和i标签包裹的复选框?

通过Selenium从页面获取所有H2元素

Pandas - groupby字符串字段并按时间范围 Select

如果值不存在,列表理解返回列表

如何列举Pandigital Prime Set

如何使用根据其他值相似的列从列表中获取的中间值填充空NaN数据

Telethon加入私有频道

django禁止直接分配到多对多集合的前端.使用user.set()

将tdqm与cx.Oracle查询集成

迭代嵌套字典的值

提取相关行的最快方法—pandas