Django 具有泛型DeleteView的NoReverseMatch
在尝试使用此视图时,我无法理解为什么会出现Django 具有泛型DeleteView的NoReverseMatch,django,django-models,django-views,Django,Django Models,Django Views,在尝试使用此视图时,我无法理解为什么会出现NoReverseMatch。我希望使用通用视图,因为执行相同任务的代码似乎要少得多 视图.py from django.views.generic import DetailView, ListView, UpdateView, CreateView, DeleteView from django.urls import reverse_lazy from .models import * class ProductDeleteView(Delete
NoReverseMatch
。我希望使用通用视图,因为执行相同任务的代码似乎要少得多
视图.py
from django.views.generic import DetailView, ListView, UpdateView, CreateView, DeleteView
from django.urls import reverse_lazy
from .models import *
class ProductDeleteView(DeleteView):
model = Product
success_url = reverse_lazy('homepage_view')
from django.db import models
from django.urls import reverse
from autoslug import AutoSlugField
class Product(models.Model):
name = models.CharField(max_length=50)
slug = AutoSlugField(null=True, default=None,
unique=True, populate_from='name')
def get_delete_url(self):
return reverse('product_delete_view', args=(self.slug,))
class Meta:
verbose_name_plural = "Products"
def __str__(self):
return self.name
from . import views
from django.urls import path, include
from django.views.generic import TemplateView
app_name = "main"
urlpatterns = [
path('product/delete/<slug:slug>/', views.ProductDeleteView.as_view(), name='product_delete_view'),
]
型号.py
from django.views.generic import DetailView, ListView, UpdateView, CreateView, DeleteView
from django.urls import reverse_lazy
from .models import *
class ProductDeleteView(DeleteView):
model = Product
success_url = reverse_lazy('homepage_view')
from django.db import models
from django.urls import reverse
from autoslug import AutoSlugField
class Product(models.Model):
name = models.CharField(max_length=50)
slug = AutoSlugField(null=True, default=None,
unique=True, populate_from='name')
def get_delete_url(self):
return reverse('product_delete_view', args=(self.slug,))
class Meta:
verbose_name_plural = "Products"
def __str__(self):
return self.name
from . import views
from django.urls import path, include
from django.views.generic import TemplateView
app_name = "main"
urlpatterns = [
path('product/delete/<slug:slug>/', views.ProductDeleteView.as_view(), name='product_delete_view'),
]
url.py
from django.views.generic import DetailView, ListView, UpdateView, CreateView, DeleteView
from django.urls import reverse_lazy
from .models import *
class ProductDeleteView(DeleteView):
model = Product
success_url = reverse_lazy('homepage_view')
from django.db import models
from django.urls import reverse
from autoslug import AutoSlugField
class Product(models.Model):
name = models.CharField(max_length=50)
slug = AutoSlugField(null=True, default=None,
unique=True, populate_from='name')
def get_delete_url(self):
return reverse('product_delete_view', args=(self.slug,))
class Meta:
verbose_name_plural = "Products"
def __str__(self):
return self.name
from . import views
from django.urls import path, include
from django.views.generic import TemplateView
app_name = "main"
urlpatterns = [
path('product/delete/<slug:slug>/', views.ProductDeleteView.as_view(), name='product_delete_view'),
]
来自。导入视图
从django.url导入路径,包括
从django.views.generic导入模板视图
app_name=“main”
URL模式=[
路径('product/delete/',views.ProductDeleteView.as_view(),name='product_delete_view'),
]
模板
<p>
<a class="btn btn-primary" href="{{product.get_delete_url}}">Delete Product</a>
</p>
您还应该在get delete url方法中添加应用程序名称
def get_delete_url(self):
return reverse('main:product_delete_view', args=(self.slug,))
你的“主页视图”在哪里声明?@bertinogago In my views.py。我的URL中也有它的名字“homepage\u view”。pyIt在我的帖子中