2012-07-26 55 views
0

試圖找出爲什麼調用下面的each.category_id.all()不起作用。基本上它沒有找到任何category_ids,但該表已填充。訪問存儲在多對多字段中的值

我有以下型號/關係:

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 

注:我也曾嘗試打開一個Django殼在做這個在GlobalPart中有一個特定的條目,並且當我這樣做時再次顯示空的[]。但是category_id肯定有條目,這就是爲什麼我不明白我做錯了什麼。

例如:

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

「它不工作」=錯誤?或0記錄找到? – levi 2012-07-26 03:17:30

+1

您在一個地方稱爲「GlobalParts」,在另一個地方稱爲「GlobalPart」。 – mVChr 2012-07-26 03:28:16

+0

0條記錄發現 – user1328021 2012-07-26 12:32:34

回答

0

我只是想出了我的問題。我一直在這個字段中存儲錯誤的值 - 因此,存儲在那裏的整數實際上並不存在作爲類別表中的主鍵。所以這就是爲什麼沒有發現。回想起來這很愚蠢,但可能會幫助另一個noob。