django.db.utils.ProgrammingError: BLOB/TEXT column 'Thing' used in key specification without a key length - but i have no "thing" in my model

django.db.utils.ProgrammingError: BLOB/TEXT column 'Thing' used in key specification without a key length - but i have no "thing" in my model

我将 django 连接到 mysql 数据库,我检查了数据库并将结果保存到 models.py

然后从 anaconda 提示我 运行

python manage.py migrate

但是我遇到了一些错误。其中之一是

django.db.utils.ProgrammingError: BLOB/TEXT column 'Thing' used in key specification without a key length

我检查了我的模型,但我没有任何 "Thing" 对象,只有 "Thing",这是一个 table 和我以这种方式定义的一个属性:

class Things(models.Model):
    id_things = models.FloatField(db_column='ID_Things', blank=True, null=True)  # Field name made lowercase.
    things = models.CharField(db_column='Things', blank=True, null=True, max_length=256)  # Field name made lowercase.
    id_db = models.FloatField(db_column='ID_db', primary_key=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'things'

所以我已经阅读了这篇文章 MySQL error: key specification without a key length

hwere 它说当我们将属性定义为文本字段或 blobfield 作为主键时会弹出错误,但在我的模型中,"thing" 不是主键... 有什么问题?

刚刚解决了这个问题。 我之前将具有名为 "Thing" 的属性的对象保存到数据库中。 所以我删除了那些内容,Django 不显示

django.db.utils.ProgrammingError: BLOB/TEXT column 'Thing' used in key specification without a key length

不再。