django.db.utils.ProgrammingError:column" questions"是字符变量[]的类型,但默认表达式是整数类型

时间:2017-12-24 10:27:26

标签: python django postgresql

这是我的模特:

class college(models.Model):
    image = models.ImageField(upload_to='college_image/',default=None)
    name = models.CharField(max_length=100)
    email = models.CharField(max_length=100,unique=True)
    password = models.CharField(max_length=500)
    add_field = models.CharField(max_length=200)
    city = models.CharField(max_length=200)
    state = models.CharField(max_length=200)
    zipcode = models.CharField(max_length=10)
    phone = models.CharField(max_length=10, validators=[RegexValidator(r'^[789]\d{9}$')])
    status = models.BooleanField(default = True)
    last_date = models.DateTimeField()
    is_active = models.BooleanField(default = False)
    reg_time = models.DateTimeField(auto_now_add=True,blank=True)
    questions = ArrayField(models.CharField(max_length=500),blank=True)

    def __str__(self):
        return self.email

当我在模型中添加了questions字段并使用了命令&py; manage.py migrate'时出现错误,并显示以下提示:

  

提示:您需要重写或转换表达式

这是什么意思?我该怎么办?

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但是希望这个答案可以对其他人有所帮助。我通过执行以下操作修复了相同的错误:

  1. 将默认list添加到ArrayField。例如。
answers = ArrayField(models.IntegerField(default=list))
  1. 删除migrations文件夹之外的__init__.py文件夹中的迁移文件
  2. python manage.py make migrations
  3. python manage.py migrate

所以问题在于,在其中一个迁移中,该字段试图将其设置为默认值0(编程错误),但是即使我在代码中修复了该字段,旧的迁移也会受到影响,因此一直失败。 / p>