2012-07-26 5 views
0

아래의 each.category_id.all()을 호출하는 것이 왜 작동하지 않는지 알아 내려고합니다. 기본적으로 category_ids를 찾지 못하고 있지만 해당 테이블이 채워집니다.many-to-many 필드에 저장된 값에 액세스하기

나는 다음과 같은 모델/관계가 있습니다

class GlobalPart (Models.model): 
... 
category_id=models.ManyToManyField(Category, related_name = 'globalpart') 
... 

class Category (Model.model): 
... 
category = models.CharField(max_length=250) 
... 

스크립트 :

def addcatsfromlist(self): 
     globalparts = GlobalPart.objects.all() 
     for each in globalparts: 
      for catid in each.category_id.all(): 
       print catid 

참고 : 나는 또한 장고 쉘을 열고이 일을 시도했다 거기에 GlobalPart의 특정 항목에 대한 그리고 다시 한번, 빈 [] 내가 이것을 할 때 보여줍니다. 그러나 내가 틀린 것을 이해하지 못하는 이유는 category_id에 대한 항목이 분명합니다. 예를 들어

: 난 그냥 내 문제를 파악

>>> mypart = GlobalPart.objects.get(pk=1) 
>>> print mypart.category_id.all() 
[] 
+0

"작동하지 않습니다"= 오류? 0 레코드가 발견 되었습니까? – levi

+1

클래스를 한 곳에서는'GlobalParts ', 다른 곳에서는'GlobalPart'로 참조하십시오. – mVChr

+0

0 records found – user1328021

답변

0

. 나는이 필드에 잘못된 값을 저장하고있었습니다. 결과적으로 거기에 저장된 정수는 카테고리 테이블의 기본 키로 실제로 존재하지 않았습니다. 그래서 아무것도 발견되지 않았습니다. 이것은 회고 적으로 꽤 어리 석었지만 다른 멍청한 놈을 도울 수 있습니다.

관련 문제