Django QuerySet 对象没有属性'objects
Posted
技术标签:
【中文标题】Django QuerySet 对象没有属性\'objects【英文标题】:Django QuerySet object has no attribute 'objectsDjango QuerySet 对象没有属性'objects 【发布时间】:2017-06-22 15:45:51 【问题描述】:我在类别中显示产品时遇到问题。 (产品已显示,但是当我单击类别(T 恤)时,我在 /man/tshirt/ 处遇到了这个问题 AttributeError 'QuerySet' 对象没有属性 'objects
views.py
def product_list(request, category_slug=None):
category = None
categories = Category.objects.all()
products = Product.objects.filter(section='man', available=True)
if category_slug:
category = get_object_or_404(Category, slug=category_slug)
products = products.objects.filter(category=category)
return render(request,
'shop/product/list.html',
'category': category,
'categories': categories,
'products': products)
urls.py
urlpatterns = [
url(r'^$', views.main, name='main'),
url(r'^man/$', views.product_list, name='product_list'),
url(r'^man/(?P<category_slug>[-\w]+)/$',
views.product_list,
name='product_list_by_category'),
]
models.py
class Category(models.Model):
name = models.CharField(max_length=200,
db_index=True)
slug = models.SlugField(max_length=200,
db_index=True)
class Meta:
ordering = ('name',)
verbose_name = 'category'
verbose_name_plural = 'categories'
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('shop:product_list_by_category',
args=[self.slug])
list.html
% extends "shop/base.html" %
% load static %
% block title %VPW% endblock %
% block content %
<ul>
% for c in categories %
<li>
<a href=" c.get_absolute_url ">c.name</a>
</li>
% endfor %
</ul>
% for product in products %
product.name
% endfor %
% endblock %
【问题讨论】:
【参考方案1】:你应该改变
products = products.objects.filter(category=category)
到
products = products.filter(category=category)
简而言之,您已经在 objects
级别查询了数据,因此 .objects
标识符在代码中此时不再需要或有效。
您可以找到更多信息here。
【讨论】:
以上是关于Django QuerySet 对象没有属性'objects的主要内容,如果未能解决你的问题,请参考以下文章
Django QuerySet 对象没有属性'objects
QuerySet 对象在 Django Rest Framework 上没有属性“用户”