Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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 DataError:(1406,“第1行的列';名称';数据太长”)_Python_Mysql_Django_Pycharm - Fatal编程技术网

Python DataError:(1406,“第1行的列';名称';数据太长”)

Python DataError:(1406,“第1行的列';名称';数据太长”),python,mysql,django,pycharm,Python,Mysql,Django,Pycharm,我读过几乎所有其他有同样错误的帖子,似乎找不到合适的解决办法 在我的models.py文件中,我有以下内容: class LetsSayCups(models.Model): name = models.CharField(max_length=65535) def __str__(self): return str(self.name) 当我尝试将aws mysql数据加载到本地mysql服务器时,会出现此错误。我的models.py文件中的另一个部分出现了

我读过几乎所有其他有同样错误的帖子,似乎找不到合适的解决办法

在我的models.py文件中,我有以下内容:

class LetsSayCups(models.Model):
    name = models.CharField(max_length=65535)

    def __str__(self):
        return str(self.name)
当我尝试将aws mysql数据加载到本地mysql服务器时,会出现此错误。我的models.py文件中的另一个部分出现了问题,我可以通过进入my.cnf.bak文件并将sql_模式从以下位置更改为:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
致:

成功了!!!直到后来我发现了另一个错误。具体错误如下所示:

...
File "/Users/im_the_user/Desktop/my_company/my_project/load_items.py", line 122, in load_the_items
  existing_cups = Cups.objects.get_or_create(name=cups)
...
django.db.utils.DataError: (1406, "Data too long for column 'name' at row 1")
以上。。。意思是我在这篇文章中遗漏了之前/之后的事情


更新my.cnf.bak文件是不够的,也不能将CharField max_length设置为65535。我还可以尝试什么?

您需要使用
文本字段。
CharField
max_length
应设置为255或更小,以避免存储为
VARCHAR
的数据库出现问题


我发现my.cfn.bak只是一个备份文件。我不确定它在第一个问题上是如何工作的,但是当我将文件重命名为my.cfn时,我的问题就解决了

使用TextField而不是CharField
...
File "/Users/im_the_user/Desktop/my_company/my_project/load_items.py", line 122, in load_the_items
  existing_cups = Cups.objects.get_or_create(name=cups)
...
django.db.utils.DataError: (1406, "Data too long for column 'name' at row 1")