获取Django model中字段名,字段的verbose_name,字段类型
如下app:ywreport下存在model:Game:
class Game(models.Model):
name = models.CharField(u'游戏名称',max_length=30)
gameid = models.CharField(u'游戏id',max_length=20)
def __unicode__(self):
return self.name
现在要取到Game这个model中有哪些字段已经这些字段的verbose_name
from django.db.models.loading import get_model
def getmodelfield(appname,modelname):
modelobj = get_model(appname,modelname)
fielddic={}
for field in modelobj._meta.fields:
fielddic[field.name] = field.verbose_name
print '字段类型:',type(field).__name__ #返回的是‘charfield’,'textfield',等这些类型
return fielddic
注:appname是model所在app的名字,modelname是model的名字
如果在view中执行get_model.filed('ywreport','Game')
,那么fieldddic结果为
{'gameid': u'\u6e38\u620fid', u'id': u'ID', 'name': u'\u6e38\u620f\u540d\u79f0'}
通过for循环输入result内容:
gameid : 游戏id
id : ID
name : 游戏名称