运行服务器点击问题触发AttributeError: function has no attribute all求助
AttributeError: 'function' object has no attribute 'all' 问题解决
启动服务器后点击浏览器中的问题时触发了AttributeError,提示“function has no attribute all”,问题出在你的DetailView代码里:
你在DetailView中定义了def queryset(self):方法,但Django的DetailView(以及所有基于类的通用视图)用来获取查询集的方法是get_queryset(self),而非queryset。你把方法名写错了,导致Django将这个方法当成了普通函数,当框架尝试调用查询集的.all()方法时,自然会报错。
修正方法1:使用get_queryset方法
修改DetailView的方法名:
class DetailView(generic.DetailView): model = Question template_name ='pulls/detail.html' def get_queryset(self): """ Excludes any questions that aren't published yet. """ return Question.objects.filter(pub_date__lte=timezone.now())
修正方法2:直接设置queryset类属性
如果你的查询集不需要根据请求动态调整,也可以直接定义类属性:
class DetailView(generic.DetailView): model = Question template_name ='pulls/detail.html' queryset = Question.objects.filter(pub_date__lte=timezone.now())
内容的提问来源于stack exchange,提问作者Abu Mus'ab Auna
相关产品推荐
相关产品推荐

