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 splitlines使用技巧
Sep 06 Python
python中使用pyhook实现键盘监控的例子
Jul 18 Python
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
python九九乘法表的实例
Sep 26 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
在pycharm中设置显示行数的方法
Jan 16 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
python 并发下载器实现方法示例
Nov 22 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
Python 图片处理库exifread详解
Feb 25 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
杏林同学录(四)
2006/10/09 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
使用Vue-Router 2实现路由功能实例详解
2017/11/14 Javascript
详解vue 数组和对象渲染问题
2018/09/21 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
Openlayers实现地图的基本操作
2020/09/28 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
python使用matplotlib画柱状图、散点图
2019/03/18 Python
如何基于python生成list的所有的子集
2019/11/11 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
自我鉴定怎么写
2014/01/12 职场文书
金融事务专业求职信
2014/04/25 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
教师个人年度总结
2015/02/11 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android