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 subprocess模块学习总结
Mar 13 Python
python编写暴力破解FTP密码小工具
Nov 19 Python
Python中Continue语句的用法的举例详解
May 14 Python
Python中的urllib模块使用详解
Jul 07 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
使用matplotlib中scatter方法画散点图
Mar 19 Python
使用PyCharm进行远程开发和调试的实现
Nov 04 Python
python 实现两个npy档案合并
Jul 01 Python
PyCharm 配置SSH和SFTP连接远程服务器
May 11 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
禁止拷贝网页内容的js代码
2014/01/22 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
javascript实现复选框选中属性
2015/03/25 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
小程序实现密码输入框
2020/11/16 Javascript
Python中使用partial改变方法默认参数实例
2015/04/28 Python
详解python单例模式与metaclass
2016/01/15 Python
Python subprocess库的使用详解
2018/10/26 Python
基于python监控程序是否关闭
2020/01/14 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
keras 多gpu并行运行案例
2020/06/10 Python
python PIL模块的基本使用
2020/09/29 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
《彩色世界》教学反思
2014/04/12 职场文书
新农村建设汇报材料
2014/08/15 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
关于感恩的作文
2019/08/26 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
2021/06/11 Python
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
2022/04/07 Servers