Django mysql在保存对象时收到警告

Django mysql在保存对象时收到警告,mysql,django,Mysql,Django,我刚刚编写了一个小应用程序,使用Django将单词存储在我的mysql数据库中。我从一个非常有序的文本文件中读取数据,如下所示: 文本文件如下所示: DELUGE DELUSION DELVE DEMAGOGUE DEMANDING DEMOLITION DEMONSTRATE DEMORALIZE DEMOTIC DEMUR DENIGRATE DENOUEMENT DENOUNCE DENT DENUDE DEPLETE DEPLORE DEPLOY for line in open('

我刚刚编写了一个小应用程序,使用Django将单词存储在我的mysql数据库中。我从一个非常有序的文本文件中读取数据,如下所示: 文本文件如下所示:

DELUGE
DELUSION
DELVE
DEMAGOGUE
DEMANDING
DEMOLITION
DEMONSTRATE
DEMORALIZE
DEMOTIC
DEMUR
DENIGRATE
DENOUEMENT
DENOUNCE
DENT
DENUDE
DEPLETE
DEPLORE
DEPLOY
 for line in open('/home/jacos/sorted-gre.txt').readlines():
...     if line:
...         p = Word(word_spelling = line)
...         p.save()
然后我用open('thefile')从中读取日期。读行如下:

DELUGE
DELUSION
DELVE
DEMAGOGUE
DEMANDING
DEMOLITION
DEMONSTRATE
DEMORALIZE
DEMOTIC
DEMUR
DENIGRATE
DENOUEMENT
DENOUNCE
DENT
DENUDE
DEPLETE
DEPLORE
DEPLOY
 for line in open('/home/jacos/sorted-gre.txt').readlines():
...     if line:
...         p = Word(word_spelling = line)
...         p.save()
单词拼写字段是主键。 然后是这样的警告: 回溯(最近一次呼叫最后一次):

文件“”,第4行,在
文件“/usr/local/lib/python2.7/dist packages/django/db/models/base.py”,第460行,保存
self.save_base(使用=使用,强制插入=强制插入,强制更新=强制更新)
save_base中的文件“/usr/local/lib/python2.7/dist packages/django/db/models/base.py”,第553行
结果=管理器。\u插入(值,返回\u id=update\u pk,using=using)
文件“/usr/local/lib/python2.7/dist packages/django/db/models/manager.py”,第195行,插入
返回insert_查询(self.model,value,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/django/db/models/query.py”,第1436行,插入查询
return query.get\u编译器(using=using).execute\u sql(return\u id)
文件“/usr/local/lib/python2.7/dist packages/django/db/models/sql/compiler.py”,第791行,在execute\u sql中
cursor=super(SQLInsertCompiler,self)。执行\u sql(无)
文件“/usr/local/lib/python2.7/dist packages/django/db/models/sql/compiler.py”,第735行,在execute\u sql中
cursor.execute(sql,params)
文件“/usr/local/lib/python2.7/dist packages/django/db/backends/util.py”,执行中的第34行
返回self.cursor.execute(sql,params)
文件“/usr/local/lib/python2.7/dist packages/django/db/backends/mysql/base.py”,执行中的第86行
返回self.cursor.execute(查询,参数)
文件“/usr/lib/pymodules/python2.7/MySQLdb/cursors.py”,执行中的第176行
如果不是self.\u延迟\u警告:self.\u警告\u检查()
文件“/usr/lib/pymodules/python2.7/MySQLdb/cursors.py”,第92行,在“警告”检查中
警告(w[-1],自警告,3)
第1行“单词拼写”列的数据被截断

因此,这些单词中只有一部分存储在mysql中。我想知道原因。

字符域有一个max\u length属性。生成数据库时设置了什么 对于
Word.object.get(pk=1).Word\u拼写

与你的警告无关,但是 建议使用
with
语句关闭或打开文件

with open('/home/jacos/sorted-gre.txt') as f:
    for line in f.readlines():
        if line:
            p = Word(word_spelling = line)
            p.save()

您缺少回溯中的最后一行…该行准确显示了引发的错误。您可以添加这些吗?@DavidWolever警告:第1行“word_spelling”列的数据被截断。对此表示抱歉。请发布
word
oops的模型定义。我忘记了最大长度已设置为20,我发现有比该长度更长的单词。(错误地)因此问题得到解决。感谢帮助。