.save()什么时候创建一个对象?

时间:2012-04-21 21:56:12

标签: python database django

我有代码:

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']在querydict中的价值。那么无论如何更好地查询这个?或者有什么关于我失踪的save()吗?

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

1 个答案:

答案 0 :(得分:1)

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

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