django模型表单对象的自动创建日期?

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

在我的模型中,我有:

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

在我看来:

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

我是否必须自己手动设置此值?我认为这是传递给DateTimeFields的参数点(或者它们只是默认值,因为我设置'editable = False'它们不会显示在表单上,因此不会在请求中提交,因此不要进入表格?) .

这样做的最佳方法是什么? init 方法?

谢谢

ps - 我是django和Python的新手......

回答(1)

2 years ago

您可以分别为 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)