Django 表单在保存时覆盖数据
如果有一个表单,其中包含来自用户的数据,比如说简历,我将表单中的数据保存到数据库中,但我不希望来自同一用户的简历更多地存储在数据库中不止一次(当编辑表单实例时)
我希望每次由同一用户保存时都将其覆盖。 我该怎么做?
多谢
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Django 的 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:
'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.