Django获取model中的字段名和字段的verbose_name方式
定义模型:
classGame(models.Model): name=models.CharField(u'游戏名称',max_length=30) gameid=models.CharField(u'游戏id',max_length=20) def__str__(self): returnself.name
获取字段名和verbose_name:
fromdjango.appsimportapps defgetmodelfield(appname,modelname): modelobj=apps.get_model(appname,modelname) field_dic={} forfieldinmodelobj._meta.fields: field_dic[field.name]=field.verbose_name print('字段类型:',type(field).__name__)#返回的是‘charfield','textfield',等这些类型 returnfield_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:游戏名称
补充知识:DjangoForms组件的参数配置案例input样式,渲染的标签加class错误信息提示
Forms渲染出标签类型
密码型、文本型、邮箱型框
fromdjango.formsimportwidgets #自定义格式方法 classUserForm(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)
fromdjango.formsimportwidgets '''在widgets.类型(加入字典形式的标签信息)''' classUserForm(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'} ))
渲染自定义错误提示
视图
fromdjango.formsimportwidgets '''追加error_messages参数dict型式''' classUserForm(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展示错误信息
{%csrf_token%} {%forfieldinform%} {{field.label}}{{field}}{{field.errors.0}}
{%endfor%}
以上这篇Django获取model中的字段名和字段的verbose_name方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。