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与shell的3种交互方式介绍
Apr 11 Python
python3 实现的人人影视网站自动签到
Jun 19 Python
python在非root权限下的安装方法
Jan 23 Python
Python实现时钟显示效果思路详解
Apr 11 Python
python事件驱动event实现详解
Nov 21 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
Jan 29 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
python​格式化字符串
Apr 20 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中$_SERVER的详细参数与说明
2008/07/29 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
详解require.js配置路径的用法和css的引入
2017/09/06 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
Webpack框架核心概念(知识点整理)
2017/12/22 Javascript
AngularJS使用Filter自定义过滤器控制ng-repeat去除重复功能示例
2018/04/21 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
python 画条形图(柱状图)实例
2020/04/24 Python
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
思想品德课教学反思
2014/02/10 职场文书
会计学自荐信
2014/06/03 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
辞职信的写法
2015/02/27 职场文书
财务工作个人总结
2015/02/27 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS