首页 > 名博 > 正文

获取Django中的model的字段名和字段的verbose_name

直接使用模型对象获取

#主要是obj._meta.fields获取模型字段的对象

params=[fforfinModelClass._meta.fields]

msg_list=[(msg.name,msg.verbose_name)formsginparams]示例

#示例model.py

classUserModel(models.Model):

nickname=models.CharField(max_length=24,unique=True,verbose_name='用户名')

u_name=models.CharField(max_length=12,null=True,default='',verbose_name='真实姓名')

u_room=models.CharField(max_length=24,verbose_name='科室')

u_password=models.CharField(max_length=128,verbose_name='密码')

u_email=models.CharField(max_length=36,verbose_name='邮箱')

u_tel=models.CharField(max_length=12,verbose_name='电话')

u_token=models.CharField(max_length=128,verbose_name='单终端登录')

classMeta:

db_table='user'#test.py

importos

importsys

importdjango

sys.path.append(os.path.dirname(os.path.abspath(__file__)))#填写项目路径

os.environ.update({"DJANGO_SETTINGS_MODULE":"CDSS.settings"})

django.setup()

fromUser.modelsimportUserModel

params=[fforfinUserModel._meta.fields]

msg_list=[(msg.name,msg.verbose_name)formsginparams]

foriinmsg_list:

print(i)

#打印结果

"""

('id','ID')

('nickname','用户名')

('u_name','真实姓名')

('u_room','科室')

('u_password','密码')

('u_email','邮箱')

('u_tel','电话')

('u_token','单终端登录')

"""调用函数

fromdjango.appsimportapps

defge_tmodel_field(appname,modelname,exclude):

"""

获取model的verbose_name和name的字段,exclude过滤掉的字段

"""

model_obj=apps.get_model(appname,modelname)

filed=model_obj._meta.fields

fielddic={}

params=[fforfinfilediff.namenotinexclude]

foriinparams:

fielddic[i.name]=i.verbose_name

returnfielddic#示例

filed_dict=ge_tmodel_field('User','UserModel',exclude=[])

print(filed_dict)

#打印结果

'"""

{'id':'ID','u_name':'真实姓名','u_tel':'电话','u_email':'邮箱',

'u_token':'单终端登录','u_password':'密码','u_room':'科室',

'nickname':'用户名'}

""" 这个功能主要用在数据导出,需要知道数据库中某个表字段和字段的含义。

网友评论

验证码 换一张
取 消
暂无评论...
为您推荐
  • 相关阅读
  • 业界资讯
  • 手机通讯
  • 电脑办公
  • 新奇数码
  • 软件游戏
  • 科学探索