首页 > 解决方案 > 在 django 中更新表单后,它会创建表单的新实例而不是更新它

问题描述

我无法更正代码,并且在每次更新后将问题插入数据库中不起作用意味着返回多个对象。这是查看代码

views.py

#form for creating question
def get_name(request): 
    if request.method=='POST':
        form = QuestionForm(request.POST)
        if form.is_valid():
            instance = form.save()
            return HttpResponseRedirect(reverse('poll:index'))
    else:
        form = QuestionForm()
    return render(request,'poll/name.html',{'form':form})

#for updating the form
def update(request,question_id=None): 
    instance=get_object_or_404(Question,pk=question_id)
    if request.method=='POST':
        form = QuestionForm(request.POST,instance=instance)
        if form.is_valid():
            instance=form.save(commit=False)
            instance.save()
            return HttpResponseRedirect(instance.get_absolute_url())
    else:
        form=QuestionForm(instance=instance)
    return render(request,'poll/name.html',{'form':form})

#urls.py

app_name='poll'

urlpatterns=[
                path('',views.index,name='index'),
                path('create/',views.get_name,name='create'),
                path('<int:question_id>/',views.detail,name='detail'),
                path('int:question_id/update',views.update,name='update'),
             ]       

标签: pythondjango

解决方案


推荐阅读