Значение Djano имеет неправильный формат. Оно должно быть в формате YYYY-MM-DD HH:MM
например, когда я использую auto_now_add=True формат "Jan. 1, 2021, 5:05 a.m.", но когда я хочу обновить дату, я получаю ошибку "YYYY-MM-DD HH:MM[:ss[. uuuuuuuuuu]][TZ] format.']", у меня нет проблем, когда я обновляю ее, вводя в формате YYYY-MM-DD HH:MM, но как я могу привести эту дату автоматически в этот формат?
models.py;
class problemduyuru(models.Model):
olusturulmatarihi = models.DateTimeField(auto_now_add=True, blank=True)
duyurutipi = models.TextField(max_length=100, null=True)
incidentno = models.TextField(max_length=100, null=True)
baslangiczamani = models.TextField(max_length=100, null=True)
aciklama = models.TextField(max_length=100, null=True)
views.py create and update;
обновить;
def problemduyurusuupdate(request, id):
problemmember = problemduyuru.objects.get(id=id)
problemmember.duyurutipi = request.POST['duyurutipi']
problemmember.incidentno = request.POST['incidentno']
problemmember.baslangiczamani = request.POST['baslangiczamani']
problemmember.aciklama = request.POST['aciklama']
problemmember.olusturulmatarihi = request.POST['olusturulmatarihi']
problemmember.save()
messages.success(request, 'Alarmlar was updated successfully!')
return redirect('/problemduyurusu')
create;
def problemduyurusucreate(request):
if request.method == 'POST':
problemmember = problemduyuru(
duyurutipi=request.POST['dduyurutipi'],
incidentno=request.POST['dincidentno'],
baslangiczamani=request.POST['dbaslangiczamani'],
aciklama=request.POST['daciklama'],
olusturulmatarihi=request.POST['dolusturulmatarihi'], )
try:
problemmember.full_clean()
except ValidationError as e:
pass
problemmember.save()
messages.success(request, 'Alarmlar was created successfully!')
return redirect('/problemduyurusu')
else:
return render(request, 'problemduyurusucreate.html')
DateTimeField Поле всегда принимает строки в формате ISO 8601 в виде дат или аналогичных, распознаваемых функцией parse_datetime(). Некоторые примеры:
- '2006-10-25 14:30:59'
- '2006-10-25T14:30:59'
- '2006-10-25 14:30'
- '2006-10-25T14:30'
- '2006-10-25T14:30Z'
- '2006-10-25T14:30+02:00'
- '2006-10-25'
https://docs.djangoproject.com/en/dev/ref/forms/fields/#datetimefield
но если вы хотите автоматически приводить эту дату в этот формат, вы можете использовать редактирование в views.py (обновление)
problemmember.olusturulmatarihi = parse_datetime(request.POST['olusturulmatarihi'])
Разбор строки с датой в поле Django DateTimeField
https://docs.djangoproject.com/en/dev/ref/utils/#module-django.utils.dateparse
и отредактируйте шаблон для того формата, который вы хотите показывать
{{ value|date:"D d M Y" }}
https://docs.djangoproject.com/en/3.2/ref/templates/builtins/#date