2012-07-26 59 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。