试图弄清楚为什么调用下面的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()
[]
答案 0 :(得分:0)
我刚刚发现了我的问题。我在这个字段中存储了错误的值 - 结果,存储在那里的整数实际上并不存在于Category表中的主键。这就是为什么没有找到的原因。回想起来这很愚蠢,但可能有助于另一个菜鸟。