1 最近为了毕业论文和自己的小博客,又回温了django的内容,发现了这本不错的文档

http://hackerxu.com/Twd/#7,兴致勃勃地做到了这一步,对自动url感兴趣,就继续做了,后来发现报错。

2 刚开始照着做发现

class Category(models.Model):
    name = models.CharField(max_length=128,unique=True)
    views = models.IntegerField(default=0)
    likes = models.IntegerField(default=0)
    slug = models.SlugField(unique=True)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Category,self).save(*args,**kwargs)
    def __str__(self):
        return self.name

后来发现执行makemigrations后,提示输入默认值或者设置默认值。肯定不能设置默认值的,因为这是区分唯一的url啊,保证unique为true的前提是得先有值,后来我设置为了null=True,blank=True,发现并没有增加这个slug

3 顺序是这样子的

3.1刚开始不要写unique=True,如果你的系统老报错,别紧张,把添加的slug都注释掉,如果只注释掉函数,就会没成功添加slug,可设置为blank=True即可

3.2 makemigrations出现了adding slug这个条目才对,然后migrate,然后执行populate_rango.py即可