我有兩個對象,我在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