【问题标题】:Is not possible to add the correct date and time无法添加正确的日期和时间
【发布时间】:2020-09-18 16:27:20
【问题描述】:

我创建了一个简单的表单来测试 DateTimeField。

settings.py

# Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/

LANGUAGE_CODE = 'en-GB'

TIME_ZONE = 'Europe/Rome'

USE_I18N = True

USE_L10N = True

USE_TZ = True

USE_THOUSAND_SEPARATOR = True

models.py

from django.utils import timezone

class DateTimeTest(models.Model):
    publishing_date = models.DateTimeField(
        default=timezone.now,
        )

forms.py

class CustomDateTime(forms.DateTimeInput):
    input_type = 'datetime-local'

class DateTimeTestForm(forms.ModelForm):
    publishing_date = forms.DateTimeField(
        widget= CustomDateTime(
            format='%d/%m/%Y %H:%M',
        )
    )

    class Meta:
        model = DateTimeTest
        fields = ['publishing_date']

views.py

def create_datetime(request):
    if request.method == 'POST':
        form = DateTimeTestForm(request.POST or None)
        if form.is_valid():
            new_testdatetime.save()
            return redirect('test')
    else:
        form = DateTimeTestForm()
    context = {
        'form': form,
        }
    template = 'blog/forms/test.html'
    return render(request, template, context)

urls.py

path('test/', views.create_datetime, name='test'),

test.html

{% extends 'base.html' %}

{% load static %}

{% block content %}
  <form method="POST" enctype="multipart/form-data" novalidate>{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" class="btn btn-info" value="Post">
  </form>
{% endblock %}

当我尝试发布日期和时间时,我看到了这条消息:

输入一个有效的日期/时间

我记得当我设置格式时,我可以根据格式插入日期和时间。 我哪里错了?

【问题讨论】:

    标签: python django django-forms django-views django-templates


    【解决方案1】:
    • 错误Enter a valid date/time 一定是由于您使用的格式而发生的。
    • 当您将表单与模型绑定时,表单验证还会检查输入是否与模型上的字段兼容。
    • 在验证表单时尝试将 DateTime 输入转换为 YYYY-MM-DD HH:MM:SS 格式。
    • 这样做可能会解决您的问题。

    如果这能解决您的问题,请更新我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      • 2020-08-08
      相关资源
      最近更新 更多