Django ImageField必填错误:设default=None仍无法提交无图片数据
解决Django ImageField必填问题
你的问题出在ImageField默认是必填字段,仅设置default=None无法让它支持空提交,需要同时配置两个关键参数:
blank=True:允许表单提交空值(对应管理面板的非必填校验)null=True:允许数据库存储NULL值
另外注意你的dish_id字段写法有误,models.AutoField需要加括号实例化,并且要指定primary_key=True,否则不会生成有效的自增主键。
修改后的完整models代码:
class dish(models.Model): dish_id = models.AutoField(primary_key=True) dish_name = models.CharField(max_length=255) dish_size = models.CharField(max_length=7) dish_price = models.IntegerField() dish_description = models.CharField(max_length=255) dish_image = models.ImageField(upload_to="", default=None, blank=True, null=True) dish_date = models.DateField() def __str__(self): return self.dish_name
修改完成后,执行数据库迁移命令使更改生效:
python manage.py makemigrations python manage.py migrate
这样在管理面板提交时,不选择图片就不会再提示必填错误,字段值会自动存储为NULL。
内容的提问来源于stack exchange,提问作者Pulkit
相关产品推荐
相关产品推荐

