这就是我所拥有的:
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