Django获取model中的字段名和字段的verbose_name方式

定义模型:

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方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Django ORM 查询表中某列字段值的方法

    1.什么是ORM ORM 全拼Object-Relation Mapping. 中文意为 对象-关系映射. 在MVC/MVT设计模式中的Model模块中都包括ORM 2.ORM优势 (1)只需要面向对象编程, 不需要面向数据库编写代码. 对数据库的操作都转化成对类属性和方法的操作. 不用编写各种数据库的sql语句. (2)实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异. 不在关注用的是mysql.oracle...等. 通过简单的配置就可以轻松更换数据库, 而不需要修改代码. 3.

  • 关于Django Models CharField 参数说明

    如下所示: depot_name = models.CharField( u'设备库房名称', blank=True, max_length=20, null=True, # default='', help_text='显示在下方吗', ) 在这里u'设备库房名称',是将depot_name这个英文名重写,blank=True是允许表单验证为空,null=True是允许数据库这个值为空, help_text是提示信息v在这里u'设备库房名称',是将depot_name这个英文名重写,blank

  • Django中的AutoField字段使用

    [Django是一个机智的框架] 默认情况下Djang会为ORM中定义的每一张表加上一个自增ID列,并且用这个列来做主键:出于一个MySQL-DBA的工作经历我觉得 Djanog还真是机智:这样么说主要是因为我遇到过许多主从延时的问题,有些比较过分的会延时好几周,通常这些都是因为binlog格式 为"ROW"但是表上不存在主键引起的. 如果当前网站用的是Django开发的,我想就不会有这种事情发生了吧. [AutoField] Django默认的行为就像这样 class TestMod

  • Django获取model中的字段名和字段的verbose_name方式

    定义模型: 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):

  • Python Django获取URL中的数据详解

    目录 Django获取URL中的数据 URL路径参数 使用path函数 使用re_path函数 URL关键字形式 总结 Django获取URL中的数据 URL中的参数一般有两种形式.如下所示: 1. https://zy010101.blog.csdn.net/article/details/120816954 2. https://so.csdn.net/so/search?q=Django&t=blog&u=zy010101 我们将第一种形式称为"URL路径参数":

  • Java获取代码中方法参数名信息的方法

    前言 大家都知道随着java8的使用,在相应的方法签名中增加了新的对象Parameter,用于表示特定的参数信息,通过它的getName可以获取相应的参数名.即像在代码中编写的,如命名为username,那么在前台进行传参时,即不需要再编写如@Parameter("username")类的注解,而直接就能进行按名映射. 如下的代码参考所示: public class T { private interface T2 { void method(String username, Stri

  • C# 获取数据库中所有表名、列名的示例代码

    C# 获取数据库中所有表名.列名,实现代码如下所示: List<Dictionary<string, string>> GetColsName(Guid gtype,string tableName,string itemIndex= "COLUMN_NAME") { DataTable dsTablesData = DbDataHelper.GetCon().GetOleDbSchemaTable(gtype, new Object[] { null, nul

  • django将网络中的图片,保存成model中的ImageField的实例

    有这样的情形,django个人头像在model中是: class UserProfile(AbstractUser): """ 用户 """ name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名") image = models.ImageField(max_length=1000,upload_to='avatar/%Y/

  • asp获取数据库中表名和字段名的代码

    复制代码 代码如下: < % '功能:显示数据库中表名.字段名.字段内容 '原创:wangsdong '原创文章,转载请保留此信息,谢谢 set rs=server.CreateObject("adodb.recordset") db="db1.mdb" set conn=server.CreateObject("adodb.connection") connstr="Provider=Microsoft.Jet.OLEDB.4.

  • Python如何查看两个数据库的同名表的字段名差异

    目录 查看两个数据库的同名表的字段名差异 问题描述 解决方案 mysql-utilities Python数据库之间差异对比 查看两个数据库的同名表的字段名差异 问题描述 开发过程中有多个测试环境,测试环境 A 加了字段,测试环境 B 忘了加,字段名对不上,同一项目就报错了 CREATE DATABASE `a` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; CREATE DATABASE `b` CHARACTER SET 'utf8' COL

  • 解决Django 在ForeignKey中出现 non-nullable field错误的问题

    在django的model中建立了如下的类 class UserType(models.Model): name = models.CharField(max_length=40, verbose_name=u'用户类型') ........ def __str__(self): return self.name class UserProfile(AbstractUser): usertype = models.ForeignKey(UserType, related_name='user_t

  • 使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名

    MySQL中查询所有数据库名和表名 查询所有数据库 show databases; 查询指定数据库中所有表名 select table_name from information_schema.tables where table_schema='database_name' and table_type='base table'; 查询指定表中的所有字段名 select column_name from information_schema.columns where table_schema

  • 在Django model中设置多个字段联合唯一约束的实例

    使用Django中遇到这样一个需求,对一个表的几个字段做 联合唯一索引,例如学生表中 姓名和班级 2个字段在一起表示一个唯一记录. Django中model部分的写法, 参见 unique-together 部分文档. class MyModel(models.Model): field1 = models.CharField(max_length=50) field2 = models.CharField(max_length=50) class Meta: unique_together =

随机推荐