Який найкращий спосіб автоматично встановити дату створення об’єкта, а також поле, яке буде записано, коли об’єкт востаннє оновлений?
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вважаються злими, тому намагайтеся уникати їх. Ця відповідь пояснює, чому і забезпечує кращий підхід, перекриваючиsave()метод.