您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-10-04 10:22:43浏览:4作者:猪猪

定义模型:

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’: ’u6e38u620fid’, ’id’: ’ID’, ’name’: ’u6e38u620fu540du79f0’}

通过for循环输入result内容:

gameid : 游戏idid : IDname : 游戏名称

补充知识: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): # 模式:普通文本 标签加上: name = forms.CharField(widget=widgets.TextInput(attrs={’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方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持好吧啦网。

标签: Django
相关文章: