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 shell 并在其中为 GlobalPart 中的特定条目执行此操作,并且再次显示为空[]。但是 category_id 肯定有条目,这就是为什么我不明白我做错了什么。

例如:

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

1 回答 1

0

我才发现我的问题。我一直在这个字段中存储了错误的值——因此,存储在那里的整数实际上并不作为 Category 表中的主键存在。所以这就是为什么什么也没找到。回想起来,这很愚蠢,但可能会帮助另一个菜鸟。

于 2012-07-26T21:58:59.710 回答