django在保存时形成覆盖数据

时间:2010-05-22 22:44:30

标签: django forms overwrite

如果a有一个表单,来自用户的数据,让我们说一个简历,然后我将表单中的数据保存到数据库中,但我不希望将来自同一用户的CV存储在数据库不止一次(当编辑实例时)

我想让它在每次由同一个用户保存时被覆盖。 我该怎么办?

非常感谢

1 个答案:

答案 0 :(得分:2)

Django的save()应该自动为你处理。

举一个例子,您通常会以这样的方式提交表格:

...
        form = UserCVForm(request.POST, instance=user_cv)
        if form.is_valid():
            form.save()
...

'instance = user_cv'告诉django您要更新现有条目 - 特别是'user_cv'。如果没有'instance = user_cv',Django会在数据库中插入一个新条目。

简而言之,看看user_cv是否已存在类似user_cv = UserCV.objects.get(user = user_id)的内容。如果user_cv存在,请务必在填充表单时敲击instance = user_cv。