在 django 中使用 slugify 后详细页面错误
Detail page error after using slugify in django
当我点击任何项目详细信息页面时出现此错误。
必须使用 URLconf.
中的对象 pk 或 slug 调用通用详细视图
URL:
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, blank=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<b>_url_kwarg</b>
[Django-doc], not the slug_field
. The slug_field
[Django-doc] 一起指定用于过滤查询集,因为您对模型使用 slug
,所以不需要更改它。
因此视图应如下所示:
class ItemDetailView(DetailView):
model = Item
<strong>slug_url_kwarg = 'item_slug'</strong>
当我点击任何项目详细信息页面时出现此错误。 必须使用 URLconf.
中的对象 pk 或 slug 调用通用详细视图URL:
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, blank=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<b>_url_kwarg</b>
[Django-doc], not the . The slug_field
slug_field
[Django-doc] 一起指定用于过滤查询集,因为您对模型使用 slug
,所以不需要更改它。
因此视图应如下所示:
class ItemDetailView(DetailView):
model = Item
<strong>slug_url_kwarg = 'item_slug'</strong>