Django 表单在保存时覆盖数据

发布于 2024-09-02 08:45:29 字数 133 浏览 6 评论 0原文

如果有一个表单,其中包含来自用户的数据,比如说简历,我将表单中的数据保存到数据库中,但我不希望来自同一用户的简历更多地存储在数据库中不止一次(当编辑表单实例时)

我希望每次由同一用户保存时都将其覆盖。 我该怎么做?

多谢

If a have a form, with the data from a user, let's say a CV, and i save the data from the form into a database, but i don't want that a CV from the same user to be stored in the database more than once(when edited form instance)

I want it to be overwritten every time it is saved by one same user.
How can i do it?

thanks a lot

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

明媚如初 2024-09-09 08:45:29

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 。

Django's save() should handle this for you automatically.

To give an example, you'll usually submit a form in a way something like this:

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

'instance=user_cv' tells django that you want to update an existing entry - specifically 'user_cv'. Without 'instance=user_cv', Django will insert a new entry into the database.

So in short, see if a user_cv exists already with something like user_cv = UserCV.objects.get(user=user_id). If a user_cv exists, be sure to whack an instance=user_cv in when populating the form.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文