<p>问题位于以下位置:</p>
<pre><code>productUpdate_form = ProductForm(instance=<s>request.</s>product1)</code></pre>
<p><code>request</code>不包含<code>product1</code>属性,只需传递<code>product1</code>对象:</p>
<pre><code>from django.shortcuts import render, get_object_or_404, redirect
from django.http import HttpResponseRedirect, HttpResponse
from django.contrib import messages
from django.views.generic import (
UpdateView,
DeleteView
)
from product.models import Product
from pages.forms import ProductForm
def ProductUpdateView(request, pk):
product1 = get_object_or_404(Product, pk=pk)
if request.method == 'POST':
productUpdate_form = ProductForm(data=request.POST,files=request.FILES,instance=<b>product1</b>))
# Check to see the form is valid
if productUpdate_form.is_valid(): # and profile_default.is_valid() :
# Sava o produto
productUpdate_form.save()
# Registration Successful! messages.success
messages.success(request, 'Produto Modificado com Sucesso')
#Go to Index
return redirect('index')
else:
# One of the forms was invalid if this else gets called.
print(productUpdate_form.errors)
else:
# render the forms with data.
productUpdate_form = ProductForm(instance=<b>product1</b>)
context = {'productUpdate_form': productUpdate_form,}
return render(request, 'base/update.html',context)</code></pre>
<p>然而,这不是一个<code>UpdateView</code>:这不是一个基于类的视图,它也不是<code>UpdateView</code>的子类</p>
<hr/>
<blockquote>
<p><strong>Note</strong>: Functions are normally written in <em>snake_case</em>, not <em>PerlCase</em>, therefore it is
advisable to rename your function to <code>product_update_view</code>, not <s><code>ProductUpdateView</code></s>.</p>
</blockquote>