我有两个 Django 模型,如下所示,MyModel1
& MyModel2
:
class MyModel1(CachingMixin, MPTTModel):
name = models.CharField(null=False, blank=False, max_length=255)
objects = CachingManager()
def __str__(self):
return "; ".join(["ID: %s" % self.pk, "name: %s" % self.name, ] )
class MyModel2(CachingMixin, models.Model):
name = models.CharField(null=False, blank=False, max_length=255)
model1 = models.ManyToManyField(MyModel1, related_name="MyModel2_MyModel1")
objects = CachingManager()
def __str__(self):
return "; ".join(["ID: %s" % self.pk, "name: %s" % self.name, ] )
MyModel2
有一个 ManyToMany 字段MyModel1
有权model1
现在看看当我向这个 ManyToMany 字段添加新条目时会发生什么。根据Django,它没有效果:
>>> m1 = MyModel1.objects.all()[0]
>>> m2 = MyModel2.objects.all()[0]
>>> m2.model1.all()
[]
>>> m2.model1.add(m1)
>>> m2.model1.all()
[]
为什么?这似乎绝对是一个缓存问题,因为我看到数据库表 myapp_mymodel2_mymodel1 中有一个新条目用于m2
&之间的链接m1
。我该怎么修??