Автоматическая дата создания формы модели Django объекты?

Как лучше всего автоматически установить дату создания объекта, а также поле, которое будет записывать время последнего обновления объекта?

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 __ метод?

125
задан sanyash 2 May 2019 в 22:40
поделиться

1 ответ

Вы можете использовать опции auto_now и auto_now_add для updated_at и created_at соответственно.

class MyModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
267
ответ дан 24 November 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: