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 (1)
Oct 31 Python
Python 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 Python
python中将阿拉伯数字转换成中文的实现代码
May 19 Python
Python yield 使用浅析
May 28 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
Python 爬取必应壁纸的实例讲解
Feb 24 Python
python查看矩阵的行列号以及维数方式
May 22 Python
Python同时处理多个异常的方法
Jul 28 Python
python 怎样进行内存管理
Nov 10 Python
Python制作表白爱心合集
Jan 22 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
MySql中正则表达式的使用方法描述
2008/07/30 PHP
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
PHP7 新增功能
2021/03/09 PHP
script不刷新页面的联动前后代码
2013/09/18 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
Vue计算属性的使用
2017/08/04 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
Vue实现购物车场景下的应用
2017/11/27 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
python使用cPickle模块序列化实例
2014/09/25 Python
python爬虫爬取网页表格数据
2018/03/07 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
安装python及pycharm的教程图解
2019/10/10 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
线程问题:wait()方法是定义在哪个类里面
2015/07/07 面试题
大学生自我鉴定范文模板
2014/01/21 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
国博复兴之路观后感
2015/06/02 职场文书
小学班主任工作随笔
2015/08/15 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
导游词之贵州百里杜鹃
2019/10/29 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Python多个MP4合成视频的实现方法
2021/07/16 Python
create-react-app开发常用配置教程
2022/06/25 Javascript