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