【发布时间】:2014-11-11 15:19:19
【问题描述】:
我对返回以下错误的外键字段进行查询。
'Category' object has no attribute 'all'
这是我的查询:
p = get_object_or_404(Product, slug=product_slug)
categories = p.categories.all()
基于这些模型:
class Category(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50, unique=True, help_text='Unique value from product page URL, created from name')
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Product(models.Model):
name = models.CharField(max_length=255, unique=True)
slug = models.SlugField(max_length=255, unique=True, help_text='Unique value for product page URL, created from name')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
categories = models.ForeignKey(Category, null=True)
我了解此问题是外键仅引用一个模型的结果;但是,当我尝试运行时:
categories = p.categories
我返回以下错误:
'Category' object is not iterable
我不确定如何解决此问题。
【问题讨论】:
-
您放置模型的方式允许您仅将单个类别与每个产品相关联,您可能在这里寻找 m2m 关系。尝试在 django 文档中阅读更多内容。
标签: django django-models