我有以下代码:
company = Company.objects.filter(account=self.account).only('slug')
if company:
return redirect(reverse_lazy('company:detail_a', kwargs={'slug': company.slug}))
我收到错误:
'QuerySet' object has no attribute 'slug'
slug
属性肯定存在(在模型/数据库中检查)。我试图像在模板中一样访问它。
所以我尝试了其他属性' name',因为在我打印QuerySet时会出现。
所以我认为QuerySet没有被评估或类似的东西,但我不知道如何强迫它。
答案 0 :(得分:2)
QuerySet是一组实例。该集合没有任何这些属性;只有个别实例才有。
如果您想获得单个实例,请使用get
代替filter
。
答案 1 :(得分:1)
filter
将返回一个不是模型对象的查询集,尝试使用第一个
company = Company.objects.filter(account=self.account).only('slug').first()
if company:
return redirect(reverse_lazy('company:detail_a', kwargs={'slug': company.slug}))
OR
company = Company.objects.only('slug').get(account=self.account)
if company:
return redirect(reverse_lazy('company:detail_a', kwargs={'slug': company.slug}))
答案 2 :(得分:0)
如果您尝试在详细信息页面上使用它,试试这个:
<a href="{{ object.get_add_to_cart_url }}" class="cart-btn">Add to cart</a>
代替:
<a href="{{ item.get_add_to_cart_url }}" class="cart-btn">Add to cart</a>