Поля Django для определения времени

У меня следующие коды:

models.py

class Job(models.Model):

    jobname = models.CharField(max_length = 1000)
    owner = models.CharField(max_length = 150)
    enabled = models.BooleanField()
    freq_type = models.IntegerField(default = 1)
    freq_interval = models.IntegerField(default = 0)
    freq_recurrence = models.IntegerField(default = 0)
    start_date=models.CharField(max_length=10)
    end_date=models.CharField(max_length=10, blank = True)
    start_time=models.CharField(max_length=6)
    end_time=models.CharField(max_length=6, blank = True)
    date_added = models.DateTimeField(auto_now_add = True, null = True)
    date_modified=models.DateTimeField(auto_now = True, null = True)
    version=models.IntegerField(default = 1)

views.py

def job_edit(request, pk):
    job = Job.objects.get(pk=pk)
    if request.method =="POST":
        job_form = JobForm(request.POST)          
        if job_form.is_valid():
            option = request.POST.get('check')
            time = request.POST.get('servicetime')
            date = request.POST.get('servicedate')
            version = request.POST.get('version')
            Job.objects.filter(pk=pk).update(enabled=option,start_time = time,start_date = date,version = version)
            return redirect('/job/', {'job':Job.objects.all})
    return render(request, 'interface/job_edit.html',{'job': job})

Когда я создаю запись в Job, дата_добавления и дата_изменения будут иметь одну и ту же дату и время. (Не уверен, что это предусмотренный способ для auto_now_add и auto_now). Но когда я пытаюсь отредактировать ту же самую запись, этот date_modified вообще не изменяется. Есть ли что-то, чего мне не хватает в моей функции? Например, что-то, что должно вызывать вставку этого auto_now в момент редактирования записи

Согласно docs поле auto_now обновляется на save, но не на update:

The field is only automatically updated when calling Model.save().
The field isn’t updated when making updates to other fields in other ways
such as QuerySet.update(), though you can specify a custom value for the field
in an update like that.
Вернуться на верх