项目不会在数据库中更新

时间:2013-10-25 22:10:11

标签: python database django

我正在编写一个方法来更新数据库中多个实例中的多个字段。现在,我正试图让它只为一个工作。

我的用户上传了一个包含要更改的所有信息的CSV文件(包括pk)。我编写了解析所有信息的函数,这一切都运行正常。我甚至可以将数据分配给一个项目,如果我从该功能打印它,它就会正确显示出来。但是,当我保存更新时(使用item.save()),数据库中似乎没有任何变化。

这是该方法的一个非常简化的版本。我真的不知道为什么它不起作用。我在其他地方做过非常相似的事情(通过表单获取数据,设置字段,调用保存,然后显示更改的信息),并且我使用了非常类似的CSV上传技术来创建新条目。

小部分相关代码:

reader = csv.reader(f)
for row in reader:
  pk = row[0]
  print(pk)

  item = POObject.objects.get(pk=pk)

  p2 = item.purchase2

  print item.purchase.requested_start_date
  print p2.requested_start_date

  requested_start_date=row[6]

  requested_start_date = datetime.datetime.strptime(requested_start_date, "%d %b %y")
  print requested_start_date

  p2.requested_start_date = requested_start_date
  p2.save()
  print p2.requested_start_date
  item.purchase2 = p2
  item.save()

  print item.purchase.requested_start_date

  return pk

显然我在那里有很多印刷品可以找到出错的地方。基本上我发现如果我查看item,它看起来很好,但如果我再次查询服务器(保存后),即dong item2=POObject.objects.get(pk=pk),它将不会有任何更新。有谁知道为什么save()没有做任何事情?

更新: 这个谜团还在继续。 如果我更新一个未包含在FK关系中的字段(比如文本字段或其他内容),一切似乎都能正常工作。但是,我真正需要做的是更新项目,然后将该项目设置为与相关主项目的fk关系。我不确定为什么这不能正常工作(更新内部项目,保存它,然后将fk设置为新的更新项目)。

1 个答案:

答案 0 :(得分:0)

哇。觉得有点惭愧,我没想到这一点。我忘记了我是如何设计我的一个模型的,其中还有另一个需要更新的对象,但我没有保存它。