Python 脚本将数据输入数据库-是否应对冒号进行特殊处理

Python 脚本将数据输入数据库-是否应对冒号进行特殊处理,python,django,python-2.7,django-models,Python,Django,Python 2.7,Django Models,所以我编写了一个脚本,基本上从txt文件读取数据并填充这个模型 class modelNursing(models.Model): item = models.CharField(max_length=250, default="") 这是一个简单的脚本(看起来像这样)。实际上,txt文件的每一行都包含一个字符串,该脚本提取每一行字符串并将该字符串作为条目输入数据库 def PopulateNursing(request): with open('../content.txt'

所以我编写了一个脚本,基本上从txt文件读取数据并填充这个模型

class modelNursing(models.Model):
    item = models.CharField(max_length=250, default="")
这是一个简单的脚本(看起来像这样)。实际上,txt文件的每一行都包含一个字符串,该脚本提取每一行字符串并将该字符串作为条目输入数据库

def PopulateNursing(request):
    with open('../content.txt') as fp:
        try:
            for line in fp:
                try:
                    modelNursing.objects.create(item=line)
                except Exception as e:
                    print str(e)
        except Exception as e:
            print str(e)
下面是有趣的第一部分,数据库中的items
ModelCursing
实例的item值等于“Vitals:q4”。那么做这样的事情

nursing = modelNursing.objects.filter(item="Vitals:q4")
应该返回一行,但不幸的是它没有。所以我进入管理界面,仔细检查条目是否真的在那里,是的,它在那里。 然后我注意到,如果我从管理界面中删除字符串
Vitals:q4
中的列,然后再次添加并保存,那么查询就可以了。有没有关于为什么会发生这种情况的建议?自动化脚本是否有可能破坏冒号插入或其他操作。为什么我必须删除每个条目中的列并重新插入,然后保存。如有任何建议,将不胜感激。我很困惑

更新:


实际上,我注意到,如果我只是进入管理部分,进入条目实例,然后简单地再次保存,查询就会工作。同样,为什么我必须转到条目实例并再次保存,以便查询工作?

您的问题是
包含
\n
行的末尾。因此,您的过滤器不是macthing
“Vitals:q4”
,因为没有此
项的记录

nursing = modelNursing.objects.filter(item="Vitals:q4\n")
所以你应该这么做

modelNursing.objects.create(item=line.strip())

您的问题是
包含
\n
行尾。因此,您的过滤器不是macthing
“Vitals:q4”
,因为没有此
项的记录

nursing = modelNursing.objects.filter(item="Vitals:q4\n")
所以你应该这么做

modelNursing.objects.create(item=line.strip())

啊,这完全有道理。我要试试这个,然后回来是的,这是个问题啊,这完全有道理。我要试试这个,然后回来。是的,这就是问题所在