Отношение django manytomany: объект 'tuple' не имеет атрибута 'all' - PullRequest
1 голос
/ 01 августа 2011

У меня проблема с многозначным отношением "я" в Django:

Мои модели:

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 Ответ

4 голосов
/ 01 августа 2011

У вас есть запятая после объявления programs в определении EcomProduct модели. Это превращает его в кортеж, который вам определенно не нужен.

...