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 查找字符串是否存在实例详解
Jan 20 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
python实现Floyd算法
Jan 03 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
python中的二维列表实例详解
Jun 19 Python
Python 实现取矩阵的部分列,保存为一个新的矩阵方法
Nov 14 Python
python编写猜数字小游戏
Oct 06 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
django API 中接口的互相调用实例
Apr 01 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
Python爬虫实战之爬取携程评论
Jun 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
又拍云异步上传实例教程详解
2016/04/19 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
PHP与SQL语句写一句话木马总结
2019/10/11 PHP
FF IE兼容性的修改小结
2009/09/02 Javascript
input的focus方法使用
2010/03/13 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
jQuery中Dom的基本操作小结
2014/01/23 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
详解vue axios二次封装
2018/07/22 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python中字典和JSON互转操作实例
2015/01/19 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
Django unittest 设置跳过某些case的方法
2018/12/26 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
人力管理专业毕业生求职信
2014/02/27 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
目标责任书范文
2014/04/14 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python