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异步编程之asyncio(百万并发)
Jul 07 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
Django基础知识 URL路由系统详解
Jul 18 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
解析Python3中的Import
Oct 13 Python
基于Python解密仿射密码
Oct 21 Python
如何通过python实现全排列
Feb 11 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
jupyter修改文件名方式(TensorFlow)
Apr 21 Python
Python 实现微信自动回复的方法
Sep 11 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 Python
python 写一个文件分发小程序
Dec 05 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代码
2008/04/09 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
分页栏的web标准实现
2011/11/01 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
[01:02:18]VGJ.S vs infamous Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
django的登录注册系统的示例代码
2018/05/14 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
会计毕业自我鉴定
2014/02/05 职场文书
军训考核自我鉴定
2014/02/13 职场文书
自强之星事迹材料
2014/05/12 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
党员检讨书
2014/10/13 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
烈士陵园观后感
2015/06/08 职场文书
开天辟地观后感
2015/06/09 职场文书
公司食堂管理制度
2015/08/05 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
Python集合的基础操作
2021/11/01 Python