1

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

我的用户上传了一个 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它,它看起来很好,但是如果我再次查询服务器(保存后),即item2=POObject.objects.get(pk=pk)它不会有任何更新。有谁知道为什么save()什么都不做?

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

4

1 回答 1

0

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

于 2013-10-26T21:40:24.357 回答