Вы не установили значение по умолчанию для поля created
в вашей модели Note
. Как следствие, значение не вводится, поэтому возникает ошибка: Вы можете установить auto_now_add=…
параметр [Django -doc] на True
, чтобы автоматически установить его на отметка времени создания объекта:
class Note(models.Model):
# …
created = models.DateTimeField(<b>auto_now_add=True</b>)
Обычно лучше изменить .instance
, заключенный в форму, и разрешить форме .save()
модель. Это особенно полезно, если вы (позже) добавите отношение «многие ко многим» к своей модели Note
, поскольку форма обрабатывает эту логику c более прозрачным способом:
def note_add(request):
if request.method == 'POST':
form = NoteForm(request.POST)
if form.is_valid():
<b>form.instance.user = request.user</b>
form.save()
return redirect('/notes')
else:
form = NoteForm()
context={
'form': form,
}
return render(request, 'add.html', context)