Wri*_*dle 5 python django django-models django-queryset django-views
我在类别中显示产品有问题.(产品展示,但当我点击类别(T恤)我有这个问题在/ man/tshirt /'QuerySet'对象的AttributeError没有属性'对象
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})
Run Code Online (Sandbox Code Playgroud)
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'),
]
Run Code Online (Sandbox Code Playgroud)
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])
Run Code Online (Sandbox Code Playgroud)
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 %}
Run Code Online (Sandbox Code Playgroud)
Ole*_*kov 10
你应该改变
products = products.objects.filter(category=category)
Run Code Online (Sandbox Code Playgroud)
至
products = products.filter(category=category)
Run Code Online (Sandbox Code Playgroud)
简而言之,您已经在该objects级别查询了数据,因此.objects在代码中此标识符不再是必需的或有效的.
你可以在这里找到更多信息.
| 归档时间: |
|
| 查看次数: |
11921 次 |
| 最近记录: |