如何在 html 输入类型=date 中使模型中不需要使用的日期字段



这就是我所拥有的:

models.py

class Comic(models.Model):
title = models.CharField(max_length=255, blank=False)
date_of_purchase = models.DateField(blank=True, null=True)

views.py

def add_to_my_collection(request):
    if request.method == 'POST':
        comic = Comic.objects.create(
            title = request.POST['title'].capitalize(), 
            date_of_purchase = request.POST['date_of_purchase'] 
        )

文件.html

<form class="create_edit" action="/add_to_my_collection" method="POST" enctype="multipart/form-data">
     {% csrf_token %}
          <div class="form-group">
              <label for="title">Title:</label>
              <input name="title" type="text" class="form-control" id="title" value="{{comic.title}}">
          </div>
          <div class="form-group">
              <label for="date_of_purchase">Date of purchase:</label>
              <input name="date_of_purchase" type="date" id="date_of_purchase" class="form-control"/>
          </div> 
          <div class="sub_but">
              <button type="submit" class="btn btn-primary btn-block">Submit</button>
          </div>
</form> 

正如您在模型中所看到的,日期字段可以为空。但是如果我运行它而不填写日期字段,则会出现错误:

django.core.exceptions.ValidationError: ["'' 值具有无效的日期格式。它必须采用 YYYY-MM-DD 格式。

我该如何解决?

如果不需要

添加首次创建日期,则应使用"auto_now_add=False"指定不需要该日期。请考虑阅读来源:

models.py

date_of_purchase = models.DateField(blank=True, null=True,auto_now_add=False)

源https://docs.djangoproject.com/en/2.1/ref/models/fields/#datetimefield

相关内容

最新更新