3

向模型添加简单缩略图字段时

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`
4

1 回答 1

2

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

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

编码:

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'}),
于 2010-10-11T12:05:50.450 回答