1. 程式人生 > >獲取Django model中的欄位名和欄位的verbose_name

獲取Django model中的欄位名和欄位的verbose_name

定義模型: 

class Game(models.Model): 
    name = models.CharField(u'遊戲名稱',max_length=30) 
    gameid = models.CharField(u'遊戲id',max_length=20) 
    def __str__(self): 
        return self.name

 獲取欄位名和verbose_name:

from django.apps import apps

def getmodelfield(appname,modelname):
    modelobj = apps.get_model(appname,modelname)
    field_dic={}
    for field in modelobj._meta.fields:
        field_dic[field.name] = field.verbose_name
        print('欄位型別:',type(field).__name__)   #返回的是‘charfield’,'textfield',等這些型別
    return field_dic
注:appname是model所在app的名字,modelname是model的名字

如果在view中執行get_model.filed('Game_app','Game'),那麼field_dic結果為:

{'gameid': '\u6e38\u620fid', 'id': 'ID', 'name': '\u6e38\u620f\u540d\u79f0'}

通過for迴圈輸入result內容:

gameid : 遊戲id
id : ID
name : 遊戲名稱