4
比方說,我有以下Django模型查詢的Django模型:使用型號名稱字符串輸入
class ModelB(models.Model):
title = models.CharField(max_length=20)
class ModelD(models.Model):
name = models.CharField(max_length=20)
在Django的ORM,我想讀一個串這將是一個名模型,並用它來查詢。類似這樣的:
>>b = 'ModelB'
>>b.objects.all()
這顯然不起作用,因爲它是一個字符串。我曾看過ContentType,但我不確定這對我的情況會有幫助。有什麼建議麼?
我也試過在Contentype
這樣做get
操作:
>>> z = ContentType.objects.get(model='modelb')
>>> z
<ContentType: model b>
>>> z.__dict__
{'model': u'modelb', '_state': <django.db.models.base.ModelState object at 0x7f195346c150>, 'id': 14, 'app_label': u'testapp'}
>>>
,但我不知道如何從這裏繼續進行!
'應用程序'實際上在1.7中可用。另外,'apps'是'django.apps'中的一個對象,所以您需要'從django.apps導入應用程序'; apps.get_model(...)'。 – knbk
@knbk,注意到這一點。感謝您的更正。 –