0

我有代码:

name = MakesiteNameForm(datdict)
if name.is_valid:
    name.save()

datsite = Makesite.objects.get(sitename=request.POST['sitename'])
datsite.ref_id.add(RefID.objects.create(url=request.POST['url'],description=request.POST['description']))
datsite.save()

所以我有这段代码,我想用它来创建和保存一些多元素项目,但是当我尝试使用这种方法时,就是这样Makesite matching query does not exist。我认为这意味着它没有保存,但后来我打电话site = Makesite.objects.all(),我可以清楚地看到查询字典中的值request.POST['sitename']。那么有没有更好的查询呢?或者我缺少关于 save() 的东西?

编辑:该表单将值站点名称值保存到 Makesite 表中

4

1 回答 1

1

save() 调用不创建对象,它只是将对象保存到数据库中,插入一个新行以防它是一个新对象,或者更新它。

首先, form.is_valid() 是一个方法,但你没有调用它,所以你总是试图保存名称。这可能与您的错误有关,也可能不相关,但无论如何它都是错误的,也许这就是查询错误的来源,而不是下面的 get() 调用。修复它,看看会发生什么。

于 2012-04-21T22:32:26.687 回答