Django:使用 ModelForm 编辑现有的数据库条目 [英] Django: using ModelForm to edit existing database entry
本文介绍了Django:使用 ModelForm 编辑现有的数据库条目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我创建了一个 ModelForm 类,以便能够创建和编辑数据库条目.创建新条目效果很好,但是,我不知道如何使用 ModelForms 编辑/更新现有条目.我可以使用以下数据库实例实例化 ModelForm:
I have created a ModelForm class to be able to create and edit database entries. Creating new entries works well, however, i dont know how to use ModelForms to edit/update an existing entry. I can instantiate a ModelForm with a database instance using:
form = MyModelForm(instance=MyModel.objects.get(pk=some_id))
但是,当我将其传递给模板并编辑一个字段然后尝试保存它时,我会创建一个新的数据库条目而不是更新some_id"?
However, when i pass this to a template and edit a field and then try to save it, i create a new database entry instead of updating "some_id"?
这是我的看法
def editData(request):
if request.method == 'POST':
form = MyModelForm(request.POST, request.FILES)
if form.is_valid():
editedEntry = form.save() # <-- creates new entry, instead of updating
推荐答案
请记住,在 POST 实例化时仍然需要使用 instance
参数.
Remember you still need to use the instance
parameter when you instantiate on POST.
instance = MyModel.objects.get(whatever)
if request.method == "POST":
form = MyModelForm(request.POST, instance=instance)
...
else:
form = MyModelForm(instance=instance)
这篇关于Django:使用 ModelForm 编辑现有的数据库条目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文