Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django.db.utils.ProgrammingError:列“0”;“问题”;类型为character variable[],但默认表达式类型为integer_Python_Django_Postgresql - Fatal编程技术网

Python django.db.utils.ProgrammingError:列“0”;“问题”;类型为character variable[],但默认表达式类型为integer

Python django.db.utils.ProgrammingError:列“0”;“问题”;类型为character variable[],但默认表达式类型为integer,python,django,postgresql,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_lengt

这是我的模型:

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
字段并使用命令“python manage.py migrate”时出错,显示以下提示:

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


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

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

  • 将默认的
    列表
    添加到ArrayField。例如
  • 删除
    迁移
    文件夹中的迁移文件,但
    除外
  • python manage.py进行迁移
  • python manage.py迁移

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

    您到底想做什么?你想在大学课堂上添加多个问题吗?是的,我想在大学模型中添加多个问题(列表中的问题)。你只需添加另一个名为“问题”的模型,并将其添加为大学中的“多个”字段class@Amir谢谢你的建议。我已经通过删除“问题”列并再次添加它解决了这个问题。主要的问题是默认值,它不是作为数组字段提供的。@AnshulTiwari您能发布一下您的代码如何处理“修复”吗?
    answers = ArrayField(models.IntegerField(default=list))