Как лучше всего автоматически установить дату создания объекта, а также поле, которое будет записывать время последнего обновления объекта?
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 __
метод?
Вы можете использовать опции 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)