【发布时间】:2012-08-05 04:23:29
【问题描述】:
好的,所以我尝试在我的单元测试中验证某个字段是 ManyToManyField 对象。这里是原始类,后面是相关的单元测试代码:
class Course(models.Model):
name = models.CharField(max_length=150)
studyunits = models.ManyToManyField(StudyUnit)
class CourseManyToManyTest(VocabTestCase):
fixtures = ['m2mtest.json']
def setUp(self):
self.course = Course.objects.create(name="Course2")
self.studyunit1 = StudyUnit.objects.all()[0]
self.studyunit2 = StudyUnit.objects.all()[1]
def testStudyUnitsAddDelete(self):
self.assertIsInstance(self.course.studyunits, models.ManyToManyField)
该测试失败并出现以下错误:
self.assertIsInstance(self.course.studyunits, models.ManyToManyField)
AssertionError: <django.db.models.fields.related.ManyRelatedManager object at 0x102853690> is not an instance of <class 'django.db.models.fields.related.ManyToManyField'>
我知道验证这一点似乎很愚蠢,但是我在尝试扩展 ManyToManyField 时发现了这个错误,现在我很好奇为什么对象的类会发生变化。好像有点太神奇了,怎么解释?
【问题讨论】:
标签: python django django-models many-to-many