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中執(zhí)行g(shù)et_model.filed('Game_app','Game'),那么field_dic結(jié)果為:
{'gameid': '\u6e38\u620fid', 'id': 'ID', 'name': '\u6e38\u620f\u540d\u79f0'}
通過for循環(huán)輸入result內(nèi)容:
gameid : 游戲id id : ID name : 游戲名稱
補(bǔ)充知識:Django Forms組件 的參數(shù)配置案例 input樣式, 渲染的標(biāo)簽加class 錯(cuò)誤信息提示
Forms渲染出標(biāo)簽類型
密碼型、文本型、郵箱型框
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())
渲染時(shí)添加屬性 class=''(便于bootstrap)
from django.forms import widgets '''在widgets.類型(加入字典形式的標(biāo)簽信息)''' class UserForm(forms.Form): # 模式:普通文本 標(biāo)簽加上:class="form-control" name = forms.CharField(widget=widgets.TextInput(attrs={'class': 'form-control'})) # 模式:密碼模式 標(biāo)簽加上:class="form-control" pwd = forms.CharField(widget=widgets.PasswordInput( attrs={'class': 'form-control'} ))
渲染自定義錯(cuò)誤提示
視圖
from django.forms import widgets '''追加error_messages參數(shù) dict型式''' class UserForm(forms.Form): # 模式:required=不能為空的提示 name = forms.CharField(min_length=4, label='姓名:', error_messages={ 'title': {'required': '不能為空哦親親'}, 'price': {'invalid': '格式錯(cuò)誤(提示方法)'}, # '字段': {'錯(cuò)誤類型': '提示信息'} }) # 模式:invalid=格式錯(cuò)誤 pwd = forms.CharField(min_length=4, label='密碼:', error_messages={ 'title': {'required': '不能為空哦親親'}, 'price': {'invalid': '格式錯(cuò)誤(提示方法)'}, # '字段': {'錯(cuò)誤類型': '提示信息'} })
HTML展示錯(cuò)誤信息
<form action="" method="post" novalidate="novalidate"> <!--要自定義提示必須 novalidate="novalidate"--> {% csrf_token %} {% for field in form %} <p> {{ field.label }}{{ field }} <span>{{ field.errors.0 }}</span> <!--錯(cuò)誤信息固定:field.errors.0 --> </p> {% endfor %} <p><input type="submit" value="提交"></p> </form>
以上這篇Django獲取model中的字段名和字段的verbose_name方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python 中函數(shù)的 收集參數(shù) 機(jī)制
今天小編就為大家分享一篇基于Python 中函數(shù)的 收集參數(shù) 機(jī)制,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python使用matplotlib實(shí)現(xiàn)繪制自定義圖形功能示例
這篇文章主要介紹了Python使用matplotlib實(shí)現(xiàn)繪制自定義圖形功能,結(jié)合實(shí)例形式分析了Python基于matplotlib模塊實(shí)現(xiàn)自定義圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-01-01從Python的源碼淺要剖析Python的內(nèi)存管理
這篇文章主要介紹了從Python的源碼淺要剖析Python的內(nèi)存管理,需要的朋友可以參考下2015-04-04簡單瞅瞅Python vars()內(nèi)置函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了簡單瞅瞅Python vars()內(nèi)置函數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09基于Pygame中Pygame模塊的大戰(zhàn)外星人實(shí)戰(zhàn)
本文主要介紹了基于Pygame中Pygame模塊的大戰(zhàn)外星人實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12利用Python將數(shù)值型特征進(jìn)行離散化操作的方法
今天小編就為大家分享一篇利用Python將數(shù)值型特征進(jìn)行離散化操作的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11python圖的深度優(yōu)先和廣度優(yōu)先算法實(shí)例分析
這篇文章主要介紹了python圖的深度優(yōu)先和廣度優(yōu)先算法,結(jié)合實(shí)例形式分析了圖的深度優(yōu)先算法與廣度優(yōu)先算法相關(guān)概念、原理、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-10-10