Django South迁移错误“包含空值”,null = True字段

时间:2010-10-11 12:02:20

标签: django django-south

为简易缩略图添加字段

easy_thumbnail = ThumbnailerImageField(
    null=True, blank=True, verbose_name=_("Easy_Thumbnails"),
    upload_to="easy_thumbnails",
    resize_source=dict(size=(100, 100), crop="smart"),
)

执行./manage.py schemamigration test --auto时,South会产生以下迁移:

def forwards(self, orm):
    # Adding field 'Test.easy_thumbnail'
    db.add_column('test_test', 'easy_thumbnail', self.gf('django.db.models.fields.files.ImageField')(), keep_default=False)
[...]
models = {
    'test.test': {
        'Meta': {'object_name': 'Test'},
        'easy_thumbnail': ('django.db.models.fields.files.ImageField', [], {}),

执行./manage.py migrate test时,出现此错误:

The error is `django.db.utils.IntegrityError: column "easy_thumbnail" contains null values`

1 个答案:

答案 0 :(得分:2)

如下修改迁移脚本解决了问题:

  • 在db.add_column
  • 中添加“null = True,blank = True”
  • 在模型中添加“'null':'True','blank':'True'”['test.test'] ['easy_thumbnail']

代码:

def forwards(self, orm):
    # Adding field 'Test.easy_thumbnail'
    db.add_column('test_test', 'easy_thumbnail', self.gf('django.db.models.fields.files.ImageField')(null=True, blank=True), keep_default=False)
[...]
models = {
    'test.test': {
        'Meta': {'object_name': 'Test'},
        'easy_thumbnail': ('django.db.models.fields.files.ImageField', [], {'null': 'True', 'blank': 'True'}),
相关问题