django - Django:使用ModelForm编辑现有数据库条目

标签 django django-templates django-forms

我创建了一个ModelForm类,以便能够创建和编辑数据库条目。创建新条目效果很好,但是,我不知道如何使用ModelForms编辑/更新现有条目。我可以使用以下数据库实例来实例化ModelForm:

form  = MyModelForm(instance=MyModel.objects.get(pk=some_id))

但是,当我将其传递给模板并编辑一个字段然后尝试保存它时,我创建了一个新的数据库条目,而不是更新“some_id”?

编辑1:
这是我的看法
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参数。

instance = MyModel.objects.get(whatever)
if request.method == "POST":
    form = MyModelForm(request.POST, instance=instance)
    ...

else:
    form = MyModelForm(instance=instance)

关于django - Django:使用ModelForm编辑现有数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7349865/

相关文章:

python - Django:如何动态创建模型仅用于测试

javascript - 将 django 变量传递给 javascript

Django : 'tag' is not a registered tag library error

python - 我收到错误消息,因为o​​jit_prehh对象没有属性 'QuerySet',这是什么意思,以及如何解决?

python - Django - 在无效表单提交中保存字段

用于通用关系的 Django 表单。如何包含它们?

django - 如何用 BeautifulSoup 解析脚本?

python - 如何在模型过滤器中过滤日期时间的工作日?

python - 我无法从 Django 中的模板访问相关字段,但它可以在 shell 中工作,我做错了什么?

python - 基于 Django 类的通用 View : cannot import name TemplateView