我有两个对象,我在django中使用不同的技术创建;
>>> from django.contrib.contenttypes.models import ContentType
>>> from myproject.models import Building
方法A
>>> content_type = ContentType.objects.get(app_label='myproject', model='Building')
>>> content_class = content_type.model_class()
>>> content_query = content_class.objects.raw("Select * from pms_building where name like '%build%' ")
>>> type(content_query)
<class 'django.db.models.query.RawQuerySet'>
>>> content_query[0]
# error ....
# Attribute: 'str' object has no attribute 'items'
方法B
>>> bld = Building.objects.raw("Select * from pms_building where name like '%build%' ")
>>> type(bld)
<class 'django.db.models.query.RawQuerySet'>
>>>bld[0]
<Building: Building A>
我的问题是,为什么同类型的两个对象行为不同?
迦特
我的猜测会是两个不同的__init__方法。使用dir(bld)和dir(content_query)来查看他们定义的内容。 –
他们是一样的。 – gath