Python 属性错误位于/product/7';QuerySet';对象没有属性';类别';
因此,每当我访问详细视图页面时,/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
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;
}
五星
四星
三星
双星
一颗星