【问题标题】:Djano value has an invalid format. It must be in YYYY-MM-DD HH:MMDjano 值的格式无效。必须是 YYYY-MM-DD HH:MM
【发布时间】:2021-11-26 01:04:16
【问题描述】:

例如,当我使用 auto_now_add=True "Jan. 1, 2021, 5:05 a.m."格式,但是当我想更新日期时,我收到错误“YYYY-MM-DD HH:MM[:ss[.uuuuuu]][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 创建和更新;

更新;

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')

创建;

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')

【问题讨论】:

    标签: python django date


    【解决方案1】:

    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'])
    

    Parsing a Datetime String into a 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

    【讨论】:

    • 非常感谢,它成功了!!! {{ value|date:"D d M Y" }} +1
    猜你喜欢
    • 2017-07-15
    • 2023-02-23
    • 2019-02-02
    • 2015-02-26
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多