今天又搞起了django,个人爱好用最新版的,所以虽然比着老师的视频做,还是出了莫名其妙的问题
IndexError at /xadmin/goods/goods/add/
list index out of range
遇到了数组越界
贴下报错信息,当然这个看不出什么,数组越界,这菜鸟都能看懂的英文
Error during template rendering
In template /Users/seth/pyenv/imooc_env36/lib/python3.6/site-packages/crispy_forms/templates/bootstrap3/field.html, error at line 28
{% if field|is_checkbox and form_show_labels %}
顺便上张图
一般人看到这里就懵了,反正只知道数组越界,天知道什么原因,然后把这个图贴给别人。
淡定,django的报错很详细的,往下看
很明显是时间这边出了问题
时间add_time的字段类型出了问题
先说下django的时间字段类型
有3个,这里直接贴网上的
需要了解跟时间相关的三个modelField,
DateTimeField和DateField和TimeField
存储的内容分别对应着datetime(),date(),time()三个对象。
对于auto_now和auto_now_add。两者默认值都为False。
auto_now=Ture,字段保存时会自动保存当前时间,但要注意每次对其实例执行save()的时候都会将当前时间保存,也就是不能再手动给它存非当前时间的值。
auto_now_add=True,字段在实例第一次保存的时候会保存当前时间,不管你在这里是否对其赋值。但是之后的save()是可以手动赋值的。也就是新实例化一个model,想手动存其他时间,就需要对该实例save()之后赋值然后再save()。
随便拷贝了一句,大概只是介绍了auto_now和auto_now_add,和我们报错无关,这里只是拓展一下三个时间类型,
然后我们来看这datetime(),date(),time()3个对象