Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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 属性错误位于/product/7';QuerySet';对象没有属性';类别';_Python_Django - Fatal编程技术网

Python 属性错误位于/product/7';QuerySet';对象没有属性';类别';

Python 属性错误位于/product/7';QuerySet';对象没有属性';类别';,python,django,Python,Django,因此,每当我访问详细视图页面时,/product/7'QuerySet'对象上的AttributeError没有属性'category'错误 它说没有属性category,但我已经与另一个名为category的模型建立了关系,在models.py中,我尝试使用category.id,但这也不起作用 views.py def detailview(请求,id): book=获取对象或404(book,pk=id) 如果request.user.u经过身份验证: oof=CartItem.objec

因此,每当我访问详细视图页面时,/product/7'QuerySet'对象上的
AttributeError没有属性'category'
错误

它说没有属性
category
,但我已经与另一个名为
category
的模型建立了关系,在
models.py
中,我尝试使用
category.id
,但这也不起作用

views.py

def detailview(请求,id):
book=获取对象或404(book,pk=id)
如果request.user.u经过身份验证:
oof=CartItem.objects.filter(user=request.user).values\u list('book',flat=True)
lmao=OrderItem.objects.filter(user=request.user).values\u list('book',flat=True)
hehe=CartItem.objects.filter(用户=request.user)
数字=0
和合的num:
数字+=1
最终价格=0
和合项目:
fianlprice+=item.book.price

specific=Book.objects.filter(pk=id) 匹配\u books=Book.objects.filter(category=specific.category).exclude(pk=id)[:3] reviews=Paginator(ProductReview.objects.filter(book=id),5) review\u page=request.GET.GET('reviews')) 查看对象=查看。获取页面(查看页面) 一颗星=ProductReview.objects.filter(book=id,rating=1.count()+ProductReview.objects.filter(book=id,rating=2.count)() 三星=ProductReview.objects.filter(book=id,rating=3.count)() four_star=ProductReview.objects.filter(book=id,rating=4.count)() 五星=ProductReview.objects.filter(book=id,rating=5.count)() 检查=真 如果ProductReview.objects.filter(book=id,user=request.user).exists(): 检查=错误 如果检查==False: get\u review=ProductReview.objects.get(user=request.user) params={'book':book,'price':fianlprice,'cart':oof,'order':lmao,'number':number,'matching_books':matching_books,'reviews':review_对象, “一颗星”“二颗星”“三颗星”“四颗星”“五颗星”“五颗星”“得到审查”“得到审查”“检查”“检查} 返回呈现(请求'main/detail.html',参数) 其他:
specific=Book.objects.filter(pk=id) 匹配\u books=Book.objects.filter(category=specific.category).exclude(pk=id)[:3] reviews=Paginator(ProductReview.objects.filter(book=id),5) review\u page=request.GET.GET('reviews')) 查看对象=查看。获取页面(查看页面) 一颗星=ProductReview.objects.filter(book=id,rating=1.count()+ProductReview.objects.filter(book=id,rating=2.count)() 三星=ProductReview.objects.filter(book=id,rating=3.count)() four_star=ProductReview.objects.filter(book=id,rating=4.count)() 五星=ProductReview.objects.filter(book=id,rating=5.count)() params={'book':book'matching_book':matching_book'reviews':review_objects'one_two_star':one_two_star','three_star':三星,'three_star':肆_star,'five_star':five_star} 返回呈现(请求'main/detail.html',参数)
detail.html

{{book.name}
{{book.description}}
{{book.price}}

${{book.price}

{{book.name}

{{book.description}}

{%if购物车%中的book.id} 从购物车上取下 {%elif book.id顺序为%} 拥有的物品 {%else%} 添加到购物车 {%endif%}
与{{book.category.name}相关的书籍 {在匹配的\u书籍%中匹配\u书籍的百分比} {%endfor%} {%if user.u经过身份验证%} {%if checking==True%} .评级{ 文本对齐:居中; 对齐内容:居中对齐; } /*:not(:checked)是一个过滤器,因此不支持:checked的浏览器不会 遵守这些规则。每个支持:checked的浏览器也支持:not(),所以 它不会使测试具有不必要的选择性*/ .额定值:未(:选中)>输入{ 位置:绝对位置; 顶部:-9999px; 剪辑:rect(0,0,0,0); } .呵呵2{ 对齐内容:居中对齐; 显示器:flex; 证明内容:中心; } .额定值:未(:选中)>标签{ 浮动:对; 宽度:1米; /*填充:0.1米*/ 溢出:隐藏; 空白:nowrap; 光标:指针; 字体大小:300%; /*线高:1.2*/ 颜色:#ddd; } .额定值:未(:选中)>标签:之前{ 内容:'★ '; } .评级>输入:选中~标签{ 颜色:淡蓝色; } .额定值:未(:选中)>标签:悬停, .额定值:未(:选中)>标签:悬停~标签{ 颜色:淡蓝色; } .评级>输入:选中+标签:悬停, .评级>输入:选中+标签:悬停~标签, .评级>输入:选中~标签:悬停, .评级>输入:选中~标签:悬停~标签, .评级>标签:悬停~输入:选中~标签{ 颜色:淡蓝色; } .评级>标签:活动{ 位置:相对位置; 顶部:2个; 左:2px; } 五星 四星 三星 双星 一颗星