2010-04-28 2 views
2

방금 ​​django 모델에 몇 가지 문제가 있습니다.모델 내부의 관련 객체에 대한 액세스

>>> a.total_items 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "models.py", line 49, in _total_items 
    for i in self.item_set.all: 
TypeError: 'RelatedManager' object is not callable 
+0

그냥 Item.objects.filter (cart = self.pk)를 사용하여 (매우 나쁨) 해결 방법을 찾았지만 ... 정말 좋아하지 않아요. – LoG

답변

3

이 줄

for i in self.items.all: 
를 교체하십시오 : 나는 카트 속성을 호출 할 때 여기에 내가 파이썬 콘솔에서 무엇을 얻을

class Cart(models.Model): 
    updated_at = models.DateTimeField(auto_now=True) 
    created_at = models.DateTimeField(auto_now_add=True) 

    def __unicode__(self): 
     return u'date %s;'%(self.created_at) 
    def __str__(self): 
     return self.__unicode__() 

    def _total_items(self): 
     """ Totale n di oggetti """ 
     a = 0 
     for i in self.items.all: 
      a += i.quantity 
     return a 
    total_items = property(_total_items) 

class Item(models.Model): 
    cart = models.ForeignKey(Cart) 
    quantity = models.PositiveIntegerField() 
    def __unicode__(self): 
     return u'product %s'%(self.id) 
    def __str__(self): 
     return self.__unicode__() 

하지만, : 예제 코드는 단어보다 낫다

와이

for i in self.items.all(): 
+0

:) 내 prob에 대한 내 첫 번째 답변이었습니다. 내가 그것을 부를 때 RelatedManager가 준비되지 않았습니다. – LoG

관련 문제