Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ListView视图对象没有属性';对象';_Python_Html_Django - Fatal编程技术网

Python ListView视图对象没有属性';对象';

Python ListView视图对象没有属性';对象';,python,html,django,Python,Html,Django,我以前将视图作为DetailView,但是当我想添加分页时,我需要将视图更改为ListView。但这样做之后,它开始抛出这个错误:“CategoryDetailView”对象没有属性“object”我认为我需要将类别分配给self,但我不能100%确定如何做到这一点 我试过: def category(self , request , *args , **kwargs): self.object = self.get_object() return self.ob

我以前将视图作为DetailView,但是当我想添加分页时,我需要将视图更改为ListView。但这样做之后,它开始抛出这个错误:
“CategoryDetailView”对象没有属性“object”
我认为我需要将类别分配给self,但我不能100%确定如何做到这一点

我试过:

def category(self , request , *args , **kwargs):
        self.object = self.get_object()
        return self.object
但它不起作用,所以现在就是这样

视图:

感谢大家使用
DetailView

列表视图
用于呈现指定的
模型
的对象列表。但是,在这里,您只想检索单个
类别
,并且该类别的
帖子
,因此您应该使用。如文档中所述,该视图包含一个
self.object

执行此视图时,
self.object
将包含视图所操作的对象


因此,在这里,我们可以通过访问URL参数中的
pk
来获取相关的
Category
。我们在这里通过
Post
s实现listview。

你在分页什么,类别还是帖子?这看起来不像
listview
,而是
DetailView
。我需要一个分页者,因为会有很多帖子,我不能把这些都放在一个人身上page@MaxLoyd:在这种情况下,这是一个
ListView
over
Post
s,然后您应该在类别id上进行筛选,将进行更新。啊,好的,我想是这样的,谢谢you@MaxLoyd:请参阅编辑。当然,它可能需要一些额外的“抛光”。类别使用slug,您介意告诉我如何过滤类别的slug吗
class CategoryDetailView(ListView):
    model = Category
    paginate_by = 1

    def get_context_data(self, **kwargs):
        context = super(CategoryDetailView, self).get_context_data(**kwargs)
        context['category_posts'] = Post.objects.filter(live=True, category=self.object)
        return context

from django.views.generic import DetailView

class CategoryDetailView(DetailView):
    model = Category

    def get_context_data(self, **kwargs):
        context = super(CategoryDetailView, self).get_context_data(**kwargs)
        context['category_posts'] = self.object.post_set.filter(live=True)
        return context
from django.views.generic import ListView

class CategoryDetailView(ListView):
    model = Post
    paginate_by = 20

    def get_queryset(self):
        return super().get_queryset().filter(category__id=self.kwargs['pk'])

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['category'] = Category.objects.get(id=self.kwargs['pk'])
        return context