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中类的继承代码实例
Oct 28 Python
Python中计算三角函数之cos()方法的使用简介
May 15 Python
Python脚本处理空格的方法
Aug 08 Python
Python使用wxPython实现计算器
Jan 30 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
Feb 13 Python
Python中__slots__属性介绍与基本使用方法
Sep 05 Python
Python unittest单元测试框架总结
Sep 08 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
python实现图片九宫格分割的示例
Apr 25 Python
Python类方法总结讲解
Jul 26 Python
virtualenv隔离Python环境的问题解析
Jun 21 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 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
为你总结一些php信息函数
2015/10/21 PHP
php给数组赋值的实例方法
2019/09/26 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
原JS实现banner图的常用功能
2017/06/12 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
2017/09/19 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
详解js类型判断
2018/05/22 Javascript
React学习笔记之高阶组件应用
2018/06/02 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Windows下PyMongo下载及安装教程
2015/04/27 Python
Python的时间模块datetime详解
2017/04/17 Python
python如何重载模块实例解析
2018/01/25 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
Django 再谈一谈json序列化
2020/03/16 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
用python实现一个简单的验证码
2020/12/09 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
德国购买门票网站:ADticket.de
2019/10/31 全球购物
个人自我评价分享
2013/12/20 职场文书
煤矿班组长的职责
2013/12/25 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis