我的电子商务目录的show_category
视图昨天完全正常运行。例如,导航到domain.com/category/necklaces会调用show_category
视图并显示项链类别中的所有产品。这是通过两个表,产品和类别及其相关的“直通”表来实现的。
我一直在使用syncdb
,但我不得不添加一个新的ManyToManyField,所以Django South参与其中,我安装了它,重新创建了数据库,使用django south来管理我的迁移,设置了所有内容并在django管理员中添加了我的类别和产品,一切顺利。我在SQL Workbench中检查了数据库本身,它看起来很棒 - 这是我昨晚所做的完美再现,但现在使用Django South。
然后我导航到domain.com/category/necklaces,我希望看到我的类别页面列出我的一个测试项链产品。相反,我得到了这个:
AttributeError at /category/necklaces/
'Category' object has no attribute 'product_set'
错误发生在我的catalog.views.py:
中def show_category(request,
category_slug,
template_name="catalog/category.html"):
c = get_object_or_404(Category,
slug=category_slug)
products = c.product_set.all()
但问题是,自从昨晚以来,这并没有改变。我检查了数据库,确认产品是否存在,是,“通过”表正确地将该产品连接到此类别。
我应该看看哪些想法?我假设错误是在数据库中的某个地方,因为我基本上没有触及当时工作的代码,但数据库看起来如此原始,很难说。任何和所有的帮助表示赞赏。在此期间我会四处寻找自己。
答案 0 :(得分:2)
添加评论作为未来参考的答案:
如果您在外键引用中使用了related_name
,_set
将不再有效,因为django提供_set
作为默认相关名称,并且自定义相关名称优先
有关related_name
here