访问存储在多对多字段中的值

时间:2012-07-26 03:13:59

标签: django

试图弄清楚为什么调用下面的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 shell并在那里为GlobalPart中的特定条目执行此操作,再一次,当我这样做时,只显示空[]。但是对于category_id肯定有条目,这就是为什么我不明白我做错了什么。

例如:

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

1 个答案:

答案 0 :(得分:0)

我刚刚发现了我的问题。我在这个字段中存储了错误的值 - 结果,存储在那里的整数实际上并不存在于Category表中的主键。这就是为什么没有找到的原因。回想起来这很愚蠢,但可能有助于另一个菜鸟。