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 : 游戲名稱
補充知識:Django Forms組件 的參數(shù)配置案例 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參數(shù) 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方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python通過ElementTree操作XML獲取結(jié)點讀取屬性美化XML
本文講解如何通過ElementTree解析XML,獲取兒子結(jié)點、插入兒子結(jié)點、操作屬性、美化XML2013-12-12
python3中_from...import...與import?...之間的區(qū)別詳解(包/模塊)
Python編碼第一步是導(dǎo)入模塊,有時候用import?***有時候用from...import,下面這篇文章主要給大家介紹了關(guān)于python3中_from...import...與import?...之間區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-08-08
Python基于機器學(xué)習(xí)方法實現(xiàn)的電影推薦系統(tǒng)實例詳解
這篇文章主要介紹了Python基于機器學(xué)習(xí)方法實現(xiàn)的電影推薦系統(tǒng),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06
Python爬蟲實例_城市公交網(wǎng)絡(luò)站點數(shù)據(jù)的爬取方法
下面小編就為大家分享一篇Python爬蟲實例_城市公交網(wǎng)絡(luò)站點數(shù)據(jù)的爬取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01

