在查询集上使用“in”运算符时,第一次调用失败。
编辑4:
我已将我的问题简化为以下代码,任何人都应该很容易测试。
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=100)
class Project(models.Model):
categories = models.ManyToManyField(Category, related_name='projects')
category_list = Category.objects.prefetch_related('projects')
print category_list # [<Category: Category object>, <Category: Category object>]
print category_list[0] in category_list # False
print category_list[0] in category_list # True
如果我删除“prefetch_related”并改用“all”,那么问题就消失了,但这会使用更多的数据库调用。
如何第一次使用 prefetch_related 得到正确的结果?