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实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
python算法与数据结构之冒泡排序实例详解
Jun 22 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
Aug 06 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
Python 列表的清空方式
Jan 13 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
Python实现微信表情包炸群功能
Jan 28 Python
对Pytorch 中的contiguous理解说明
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
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
JQuery入门——用bind方法绑定事件处理函数应用介绍
2013/02/05 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
JavaScript中的比较操作符&gt;、=、
2014/12/31 Javascript
jQuery中:nth-child选择器用法实例
2014/12/31 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
vue中页面跳转拦截器的实现方法
2017/08/23 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
python Celery定时任务的示例
2018/03/13 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
Python画柱状统计图操作示例【基于matplotlib库】
2018/07/04 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
应届生财务管理求职信
2013/11/06 职场文书
幼儿园安全责任书范本
2014/07/24 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
导游词之贵州百里杜鹃
2019/10/29 职场文书
Nginx实现会话保持的两种方式
2022/03/18 Servers