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


Posted in Python onMay 19, 2020

定义模型:

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 : 游戏名称

补充知识:Django Forms组件 的参数配置案例 input样式, 渲染的标签加class 错误信息提示

Forms渲染出标签类型

密码型、文本型、邮箱型框

from django.forms import widgets

# 自定义格式方法
class UserForm(forms.Form):
 '''最小4位 且 模式:普通文本'''
 name = forms.CharField(min_length=4, label='姓名:',widget=widgets.TextInput()) 
 
 '''最小4位 且 模式:密码模式'''
 pwd = forms.CharField(min_length=4, label='密码:', widget=widgets.PasswordInput())

渲染时添加属性 class=''(便于bootstrap)

from django.forms import widgets

'''在widgets.类型(加入字典形式的标签信息)'''

class UserForm(forms.Form):
 # 模式:普通文本 标签加上:class="form-control"
 name = forms.CharField(widget=widgets.TextInput(attrs={'class': 'form-control'})) 
 
 # 模式:密码模式 标签加上:class="form-control"
 pwd = forms.CharField(widget=widgets.PasswordInput(
 attrs={'class': 'form-control'}
 ))

渲染自定义错误提示

视图

from django.forms import widgets
'''追加error_messages参数 dict型式'''

class UserForm(forms.Form):

 # 模式:required=不能为空的提示
 name = forms.CharField(min_length=4, label='姓名:', 
    error_messages={
                     'title': {'required': '不能为空哦亲亲'},
          'price': {'invalid': '格式错误(提示方法)'},
          # '字段': {'错误类型': '提示信息'}
             }) 
 
 # 模式:invalid=格式错误
 pwd = forms.CharField(min_length=4, label='密码:',
    error_messages={
                     'title': {'required': '不能为空哦亲亲'},
          'price': {'invalid': '格式错误(提示方法)'},
          # '字段': {'错误类型': '提示信息'}
             })

HTML展示错误信息

<form action="" method="post" novalidate="novalidate"> 
 <!--要自定义提示必须 novalidate="novalidate"-->
 
   {% csrf_token %}
   {% for field in form %}
     <p>
       {{ field.label }}{{ field }} <span>{{ field.errors.0 }}</span>
       <!--错误信息固定:field.errors.0 -->
     </p>
   {% endfor %}
   <p><input type="submit" value="提交"></p>
 </form>

以上这篇Django获取model中的字段名和字段的verbose_name方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python局域网ip扫描示例分享
Apr 03 Python
从零学Python之hello world
May 21 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
简单了解python模块概念
Jan 11 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
May 10 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
Jun 03 Python
Python3 实现串口两进程同时读写
Jun 12 Python
python数据分析:关键字提取方式
Feb 24 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 07 Python
python编程的核心知识点总结
Feb 08 Python
python异常中else的实例用法
Jun 15 Python
Python日志处理模块logging用法解析
May 19 #Python
基于PyQT实现区分左键双击和单击
May 19 #Python
Python更换pip源方法过程解析
May 19 #Python
解决Django Haystack全文检索为空的问题
May 19 #Python
浅谈django 重载str 方法
May 19 #Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
May 19 #Python
在Django中自定义filter并在template中的使用详解
May 19 #Python
You might like
用在PHP里的JS打印函数
2006/10/09 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
php给图片添加文字水印方法汇总
2015/08/27 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
vuex的简单使用教程
2018/02/02 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
Python给图像添加噪声具体操作
2019/03/03 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
八年级生物教学反思
2014/01/22 职场文书
室内拓展活动方案
2014/02/13 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
激励口号大全
2014/06/17 职场文书
邀请函模板
2015/02/02 职场文书
阿甘正传观后感
2015/06/01 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
使用pytorch实现线性回归
2021/04/11 Python
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
js实现自动锁屏功能
2021/06/02 Javascript