我编写了一个Python模型,如下所示:
来自django.db导入模型
class Product(models.Model):
title = models.CharField(max_length=255, unique=True)
description = models.TextField(blank=True)
image_url = models.URLField(blank=True)
quantity = models.PositiveIntegerField(default=0)
def sell(self):
self.quantity = self.quantity - 1
self.save()
return self.quantity
当我尝试使用migrate创建架构时,我收到以下消息:
You are trying to add a non-nullable field 'description' to product without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Select an option:
我的问题是,如果我为'description'设置'blank = True',是否有必要为字段指定默认值?或者我错过了其他什么?
答案 0 :(得分:3)
blank=True
与null=True
不同,the documentation explains。当文本字段为空时,它仍然需要某种值:但该值可以是空字符串。
因此,只需选择选项1,然后输入''
作为默认值。
答案 1 :(得分:2)
为Django 1.7创建了此行为的票证。 看看here