获取Django中model字段名 字段的verbose_name
2017-03-01 15:23
357 查看
obj._meta.fields 为关键 obj为model类
推荐使用函数
定义model类型
填写View视图,输出model的name以及verbose_name
结果如下
推荐使用函数
from django.apps import apps def getmodelfield(appname,modelname,exclude): """ 获取model的verbose_name和name的字段 """ modelobj = apps.get_model(appname, modelname) filed = modelobj._meta.fields print(filed) fielddic = {} params = [f for f in filed if f.name not in exclude] for i in params: fielddic[i.name] = i.verbose_name return fielddic exclude = ['username','email','is_staff','last_login','password','last_name','date_joined','is_active','is_superuser'] cs = getmodelfield('users', 'UserProfile',exclude) #输出结果为: {'active': 'active', 'registration_number': '工商注册号', 'contact_person': '联系人', 'company_person': '单位法人', 'education': '学历', 'gender': 'gender', 'id': 'ID', 'address': '地址', 'first_name': <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7fe70c6a77b8>, 'title': '职称', 'company_type': '单位类型', 'introduction': '简介', 'project_role': '项目角色', 'gcp': 'gcp', 'department': '部门', 'realname': '姓名', 'company': '单位', 'mobile': '电话'}
定义model类型
class UserMessage(models.Model): """ 用户信息表 """ user = models.ForeignKey(User,verbose_name='用户名') study_number = models.IntegerField(default='', verbose_name='研究编号') study_name = models.CharField(max_length=50, default='',verbose_name='研究名称') study_disease = models.CharField(max_length=20, default='',verbose_name='研究疾病') study_medicine = models.CharField(max_length=25, default='',verbose_name='研究药物/器械') responsible_person = models.CharField(max_length=10, default='',verbose_name='负责人') start_time = models.DateField(null=True,blank=True, verbose_name='开始时间') end_time = models.DateField(null=True,blank=True, verbose_name='创建时间') article = models.CharField(max_length=20, default='', verbose_name='文章发表情况') influence = models.CharField(max_length=20, default='', verbose_name='影响因子') funds = models.CharField(max_length=30, default='', verbose_name='经费来源') pay = models.CharField(max_length=100,default='', verbose_name='费用') util = models.CharField(max_length=5, default='', verbose_name='单位') add_time = models.DateField(auto_now_add=True, verbose_name='添加时间')
填写View视图,输出model的name以及verbose_name
exclude_fields = ('user', 'add_time') params = [f for f in UserMessage._meta.fields if f.name not in exclude_fields] print (params) for msg in params: print(msg.name,msg.verbose_name)
结果如下
id ID study_number 研究编号 study_name 研究名称 study_disease 研究疾病 study_medicine 研究药物/器械 responsible_person 负责人 start_time 开始时间 end_time 创建时间 article 文章发表情况 influence 影响因子 funds 经费来源 pay 费用 util 单位
相关文章推荐
- 获取Django model中字段名,字段的verbose_name,字段类型
- (转载)获取Django中model字段名 字段的verbose_name
- Django如何从Model中获取字段名称——verbose_name
- Django获取model中字段的中文列名
- Django模板获取field的verbose_name
- django admin manytomany获取所选字段值
- django admin manytomany获取所选字段值
- [转]Django model字段类型详解
- Django Model 字段类型
- Django Model 字段类型
- 2.4.4.3、Django用user表last_name字段做权限控制
- Django model 字段类型清单
- Django model字段类型清单
- 为Django中的模型Model添加JSON类型字段
- Django文档——Model字段类型(Field Types)
- django models使用verbose_name报错
- Django model字段类型
- Django model字段类型
- related_name在django model中的应用
- 在Django的Model中定义TextField字段导致无法在Mysql中生成表格