1

存在通用视图以使我们的生活更轻松,但是花在了解这些东西如何工作上的时间实际上使它们变得更加困难。也许是我,但我一直在想如何解决这个问题,我可以自己轻松地编写视图并继续前进,但我坚持要学习它。

我想显示一个自定义的 DetailView 类,代码抛出:

'Sculpture' object has no attribute 'filter'

from django.shortcuts import render, get_object_or_404
from django.views.generic import ListView, DetailView
from sculptures.models import Sculpture

class SculptureListView(ListView):
    """docstring for SculptureListView"""
    def get_queryset(self):
        return Sculpture.objects.all() 
class SculptureDetailView(DetailView):
    """docstring for SculptureDetailView"""
    def get_queryset(self):
        sculpture = get_object_or_404(Sculpture, slug=self.kwargs['slug'])
        return sculpture

我知道它需要一条线修复 - 最多但无法弄清楚。

和想法?

4

2 回答 2

8

get_queryset,顾名思义,应该返回一个查询集,而不是单个对象。

于 2011-08-24T20:54:44.003 回答
5

要返回单个对象,请使用 get_object

class SculptureDetailView(DetailView):
    """docstring for SculptureDetailView"""
    def get_object(self):
        sculpture = get_object_or_404(Sculpture, slug=self.kwargs['slug'])
        return sculpture
于 2012-11-16T03:51:36.333 回答