我怎样才能让 Django slug 和 id 一起工作?
How can I make Django slug and id work together?
我希望我的 URL 像 Whosebug 一样同时包含 id 和 slug,但 slug 无法正常工作。而不是这样:
www.example.com/games/155/far-cry-5
URL是这样的:
www.example.com/games/155/<bound%20method%20Game.slug%20of%20<Game:%20Far%20Cry%205>>
我的 models.py :
class Game(models.Model):
name = models.CharField(max_length=140)
def slug(self):
return slugify(self.name)
def get_absolute_url(self):
return reverse('core:gamedetail', kwargs={'pk': self.id, 'slug': self.slug})
我的 views.py :
class GameDetail(DetailView):
model = Game
template_name = 'core/game_detail.html'
context_object_name = 'game_detail'
我的 urls.py :
path('<int:pk>/<slug>', views.GameDetail.as_view(), name='gamedetail')
调用slug()方法获取值。
return reverse('core:gamedetail', kwargs={'pk': self.id, 'slug': self.slug()})
或将其定义为 class
的 属性
@property
def slug(self):
...
我希望我的 URL 像 Whosebug 一样同时包含 id 和 slug,但 slug 无法正常工作。而不是这样:
www.example.com/games/155/far-cry-5
URL是这样的:
www.example.com/games/155/<bound%20method%20Game.slug%20of%20<Game:%20Far%20Cry%205>>
我的 models.py :
class Game(models.Model):
name = models.CharField(max_length=140)
def slug(self):
return slugify(self.name)
def get_absolute_url(self):
return reverse('core:gamedetail', kwargs={'pk': self.id, 'slug': self.slug})
我的 views.py :
class GameDetail(DetailView):
model = Game
template_name = 'core/game_detail.html'
context_object_name = 'game_detail'
我的 urls.py :
path('<int:pk>/<slug>', views.GameDetail.as_view(), name='gamedetail')
调用slug()方法获取值。
return reverse('core:gamedetail', kwargs={'pk': self.id, 'slug': self.slug()})
或将其定义为 class
的 属性@property
def slug(self):
...