django manytomany关系:'tuple'对象没有属性'all'

时间:2011-08-01 14:41:39

标签: django many-to-many relation

我在Django中遇到了'self'多人关系的问题:

我的模特:

class EcomProduct(models.Model):
    products = models.ManyToManyField('self', through='EcomProductToProduct', symmetrical=False),


class EcomProductToProduct(models.Model):
    from_ecom_product = models.ForeignKey(EcomProduct,related_name='from_ecomproduct')
    to_ecom_product = models.ForeignKey(EcomProduct,related_name='to_ecomproduct')
    class Meta:
        db_table = u'ecom_product_to_product'

现在在views.py中,我需要获得与特定产品相关的所有产品:

def show_product(request, ecomproduct_slug, template_name="catalog/product.html"):
     p = get_object_or_404(EcomProduct, slug=ecomproduct_slug)
     related_products_to_product = p.products.all() #it doesn't work     

我收到消息:

Exception Value: 'tuple' object has no attribute 'all'

我不知道如何修复它。问题是如何获得特定产品的所有相关产品? 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

programs模型定义中声明EcomProduct后,您有一个逗号。这把它变成了一个你当然不想要的元组。