问题描述
我在点击任何商品详细信息页面时收到此错误。 必须使用 URLconf 中的对象 pk 或 slug 调用通用详细信息视图。
网址:
path('item/<slug:item_slug>/',ItemDetailView.as_view(),name='item_detail'),
查看:
class ItemDetailView(DetailView):
model = Item
slug_field = 'item_slug'
型号:
class Item(models.Model):
title = models.CharField(max_length=100)
description= RichTextField(blank=True,null=True)
main_image= models.ImageField(null=True,blank=True,upload_to='images/')
date = models.DateTimeField(auto_Now_add=True)
item_category = models.ForeignKey(Categories,default='Coding',on_delete=SET_DEFAULT)
slug = models.SlugField(unique=True,null=True) # new
def save(self,*args,**kwargs):
if not self.slug and self.title:
self.slug = slugify(self.title)
super(Item,self).save(*args,**kwargs)
def __str__(self):
return self.title
解决方法
URL 参数用 slug_url_kwarg
[Django-doc] 指定,而不是 。 syscall
slug_field
[Django-doc] 用于过滤查询集,因为您将 slug_field
用于您的模型,因此您无需更改它。
所以视图应该是这样的:
slug