lmb@lmb-Think:~/bbs02$ python manage.py makemigrations You are trying to add a non-nullable field 'update_time' to tags 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: 1 Please enter the default value now, as valid Python The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now() >>> timezone.now() Migrations for 'web': 0021_tags_update_time.py: - Add field update_time to tags lmb@lmb-Think:~/bbs02$ python manage.py migrate Operations to perform: Synchronize unmigrated apps: staticfiles, messages, ckeditor Apply all migrations: admin, web, contenttypes, auth, sessions Synchronizing apps without migrations: Creating tables... Running deferred SQL... Installing custom SQL... Running migrations: Rendering model states... DONE Applying web.0021_tags_update_time... OK
class Tags(models.Model): ''' 标签表 ''' tagname = models.CharField(u"关键字",max_length=20) num = models.CharField(u"频率",max_length=100) update_time = models.DateTimeField(u"更新时间",auto_now=True) def __unicode__(self): return self.tagname
makemigrations 时遇到错误:
新增 update_time 字段时更新数据库遇到提示如下:(update_time 字段非空字段)
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
这时 选择 1
输入
timezone.now()添加当前时间入库
然后执行 migrate 成功。