DAM*_*225 0 django django-taggit
我想在我的模板上显示 4 个相关项目,它们与当前项目具有相同的标签。我正在使用大包 django-taggit 并且我已经阅读了 django-taggit doc
并且他们没有解释如何使用“similar_objects()”来制作具有基于类的视图的相关项
我的意见.py:
class GameDetail(DetailView):
model = Game
template_name = 'core/game_detail.html'
context_object_name = 'game_detail'
Run Code Online (Sandbox Code Playgroud)
我的models.py:
class Game(models.Model):
name = models.CharField(max_length=140)
developer = models.CharField(max_length=140)
game_trailer = models.CharField(max_length=300, default="No Trailer")
game_story = models.TextField(default='No Story')
tags = TaggableManager()
Run Code Online (Sandbox Code Playgroud)
我的模板“game_detail.html”很长,如果您能解释如何在我的视图中使用 django-taggit 以及如何在模板上显示相关项目,我将不胜感激
你可以这样构建你的视图:
class GameDetail(DetailView):
model = Game
template_name = 'core/game_detail.html'
context_object_name = 'game_detail'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["related_items"] = self.object.tags.similar_objects()[:4]
return context
Run Code Online (Sandbox Code Playgroud)
然后您可以related_items像往常一样使用模板上的列表。
注意:如果你使用python2的super调用应该是这个:
context = super(self, GameDetail).get_context_data(**kwargs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |