2011-08-01 68 views
1

我心中已经有问题在Django“自我”多对多关系:在views.pyDjango的多对多关系:“元组”对象有没有属性“所有”

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' 

现在:

我的模型我需要获得与特定产品的所有产品:

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' 

我不知道如何解决它。问题是如何将特定产品的所有相关产品? 感谢您的帮助。

+0

请回复(p)和repr(p.products) – guettli

回答

4

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

+0

非常感谢,多么愚蠢的错误。我花了几个小时找到解决方案。 – tulator

+0

谢谢你也帮我找到我的逗号:) – Azd325

相关问题