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 相关文章推荐
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
用Python将mysql数据导出成json的方法
Aug 21 Python
python实现桌面壁纸切换功能
Jan 21 Python
python实现简单日期工具类
Apr 24 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
Python 使用PyQt5 完成选择文件或目录的对话框方法
Jun 27 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
浅谈Python爬虫原理与数据抓取
Jul 21 Python
python操作ini类型配置文件的实例教程
Oct 30 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
python 递归相关知识总结
Mar 03 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 破解防盗链图片函数
2008/12/09 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
2014/07/05 PHP
php读取csv数据保存到数组的方法
2015/01/03 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
使用jQuery内容过滤选择器选择元素实例讲解
2013/04/18 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
纯JS实现只能输入数字的简单代码
2017/06/21 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
微信小程序开发(一):服务器获取数据列表渲染操作示例
2020/06/01 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
python数据结构之链表的实例讲解
2017/07/25 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
OpenCV Python实现拼图小游戏
2020/03/23 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
法律专业个人实习自我鉴定
2013/09/23 职场文书
社区十八大感言
2014/01/19 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
经贸日语专业个人求职信范文
2014/04/29 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2014年度个人总结范文
2015/03/09 职场文书
南京南京观后感
2015/06/02 职场文书
小学班主任研修日志
2015/11/13 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript