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中的socket模块使用代理实例
May 29 Python
python格式化字符串实例总结
Sep 28 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
Python 数据结构之队列的实现
Jan 22 Python
python登录并爬取淘宝信息代码示例
Dec 09 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
pyspark操作MongoDB的方法步骤
Jan 04 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
Django给admin添加Action的步骤详解
May 01 Python
使用python serial 获取所有的串口名称的实例
Jul 02 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 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+mysql扎实个人基本功
2008/03/27 PHP
php Ajax乱码
2008/04/09 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
使用zrender.js绘制体温单效果
2019/10/31 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
在python中的socket模块使用代理实例
2014/05/29 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
Django实现自定义404,500页面教程
2017/03/26 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
Python表达式的优先级详解
2020/02/18 Python
Python3.9新特性详解
2020/10/10 Python
selenium+python实现基本自动化测试的示例代码
2021/01/27 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
如何在Canvas中添加事件的方法示例
2019/05/21 HTML / CSS
软件测试常见笔试题
2012/02/04 面试题
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
新闻通讯稿模板
2015/07/22 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
Redis实现分布式锁的五种方法详解
2022/06/14 Redis