在Django的DetailView中使用"Slug"出现问题

27 浏览
0 Comments

在Django的DetailView中使用"Slug"出现问题

models.py

class Tag(models.Model):
    name = models.CharField(max_length=64, unique=True)     
    slug = models.SlugField(max_length=255, unique=True)
    def save(self, *args, **kwargs):
        self.slug = slugify(self.name)
        super(Tag, self).save(*args, **kwargs)

urls.py

url(r'^tag/(?P[A-Za-z0-9_\-]+)/$', TagDetailView.as_view(), name='tag_detail'),      

views.py

class TagDetailView(DetailView):
    template_name = 'tag_detail_page.html'
    context_object_name = 'tag'

这样做应该没有问题,因为Django的通用DetailView会查找"slug"或"pk"来获取对象。然而,访问"localhost/tag/RandomTag"时出现错误:

错误:

ImproperlyConfigured at /tag/RandomTag/
TagDetailView缺少一个查询集。请定义TagDetailView.model、TagDetailView.queryset,或者覆盖TagDetailView.get_queryset()。

有人知道为什么会出现这种情况吗...???

谢谢!!!

0