<p>最好使用ClassView<a href="https://docs.djangoproject.com/en/3.1/ref/class-based-views/generic-editing/#django.views.generic.edit.UpdateView" rel="nofollow noreferrer">https://docs.djangoproject.com/en/3.1/ref/class-based-views/generic-editing/#django.views.generic.edit.UpdateView</a></p>
<pre><code># views.py
from django.views.generic.edit import UpdateView
from product.models import Product
from django.contrib import messages
from pages.forms import ProductForm
class ProductUpdateView(UpdateView):
model = Product
form_class = ProductForm
template_name = 'base/update.html'
def form_valid(self, form):
self.object = form.save()
messages.success(self.request, 'Produto Modificado com Sucesso')
return redirect('index')
def get_context_data(self, **kwargs):
if 'productUpdate_form' not in kwargs:
kwargs['productUpdate_form'] = self.get_form()
return super().get_context_data(**kwargs)
# urls.py
from django.urls import include, path
from pages.views import (ProductListView,
ProductUpdateView,
ProductDeleteView)
urlpatterns = [
path('listProduct/', ProductListView, name='listProduct'),
path('<int:pk>/update/', ProductUpdateView.as_view(), name='product-update'),
]
</code></pre>