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))