为Django模型中的可选字段提供默认值

时间:2014-11-25 12:29:58

标签: python django

我编写了一个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',是否有必要为字段指定默认值?或者我错过了其他什么?

2 个答案:

答案 0 :(得分:3)

blank=Truenull=True不同,the documentation explains。当文本字段为空时,它仍然需要某种值:但该值可以是空字符串。

因此,只需选择选项1,然后输入''作为默认值。

答案 1 :(得分:2)

为Django 1.7创建了此行为的票证。 看看here