成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

讓Django的BooleanField支持字符串形式的輸入方式

瀏覽:2日期:2024-10-03 14:18:06

再Django中,你可以把字符串形式的數(shù)值賦值給IntegerField,然后Django會默認(rèn)把字符串轉(zhuǎn)換成int。

但是BooleanField則不行,BooleanField只能接受True和False,或者0和1(BTW:在python中True即是1,F(xiàn)alse即是0)。

這對于很多網(wǎng)絡(luò)參數(shù)上傳的場景很不利,因?yàn)楹芏鄷r候我們處于方便會將布爾型參數(shù)轉(zhuǎn)換成字符串形式來上傳。

一個典型的場景是在使用Swfit的Alamofire框架中的upload來上傳Multipartform時,由于form參數(shù)只能添加Data形式的參數(shù),直接將Bool型轉(zhuǎn)化成Data會非常麻煩,帶來編碼類型的問題。

例如采用如下的方式進(jìn)行轉(zhuǎn)化:

let dataToUpload = Data(bytes: boolVal, count: MemoryLayout<Bool>.size)

以這種形式上傳最后被django接收到時,這個字段的值會是'x00'(False)或者'x01'(True),導(dǎo)致編碼類型的錯誤。

所以一個較為方便的方法是將bool型變量轉(zhuǎn)化成字符串再上傳。

let toText = boolVal ? '1' : '0'form.append(toText.data(using: String.Encoding.utf8, allowLossyConversion: false)!, withName: key)

不過,這樣雖然避免了編碼問題,但是在后臺賦值時直接將這個字段賦給相應(yīng)的BooleanField的話,會永遠(yuǎn)是True(這是當(dāng)然的,將字符串直接用bool()做強(qiáng)制類型轉(zhuǎn)換就會始終是True)。

一個妥協(xié)的辦法是現(xiàn)將得到的上傳的字符型字段轉(zhuǎn)換成Int,再賦值給BooleanField。

不過,這里要給大家介紹一種更加整潔,更加一勞永逸的辦法,就是我們來重定義BooleanField的行為,在為其復(fù)制時,自動將字符串以我們想要的規(guī)則轉(zhuǎn)換成Bool值。

代碼如下:

from django.db.models import BooleanField as _BooleanFieldclass BooleanField(_BooleanField): def get_prep_value(self, value):if value in ('0', 'false', 'False'): return Falseelif value in ('1', 'true', 'True'): return Trueelse: return super(BooleanField, self).get_prep_value(value)

其中g(shù)et_prep_value這個函數(shù)會在Django準(zhǔn)備把字段的值寫入數(shù)據(jù)庫時調(diào)用。

補(bǔ)充知識:Dajango xadmin 設(shè)置只讀字段,設(shè)置BooleanField類型在頁面中的顯示位置

class MachineInfoAdmin(admin.ModelAdmin):

def get_readonly_fields(self, request, obj=None): ''' 重新定義此函數(shù),限制普通用戶所能修改的字段 ''' if request.user.is_superuser: self.readonly_fields = [] return self.readonly_fields readonly_fields = (’machine_ip’, ’status’, ’user’, ’machine_model’, ’cache’, ’cpu’, ’hard_disk’, ’machine_os’, ’idc’, ’machine_group’)

二,xadmin自定義字段設(shè)置排序

def identity(self,ext): return ext.user.get_types_display() identity.short_description=’身份’ # identity.admin_order_field = ’end_date’# 設(shè)置列表顯示字段list_display = [’name’, ’course_org’, ’detail’,’degree’,’learn_times’,’students’,’fav_nums’,’image’,’click_nums’,’add_time’]# 設(shè)置列表查詢字段search_field = [’name’, ’course_org’, ’detail’,’degree’,’learn_times’,’students’,’fav_nums’,’image’,’click_nums’]# 設(shè)置列表過濾字段list_filter = [’name’, ’course_org’, ’detail’,’degree’,’learn_times’,’students’,’fav_nums’,’image’,’click_nums’,’add_time’]# 設(shè)置顯示圖標(biāo)model_icon = ’fa fa-check-square’ # 設(shè)置字段可以直接在列表頁修改 list_editable=[’desc’,’degree’]# 設(shè)置默認(rèn)排序ordering=[’-click_nums’]# 設(shè)置詳情頁面只讀顯示readonly_fields=[’fav_nums’,’click_nums’]# 設(shè)置詳情頁面不顯示某個字段exclude=[’add_time’]#自動刷新列表頁面(秒數(shù))refresh_times = [3,5]

三,設(shè)置BooleadnField 顯示和其他字段同列

1、

讓Django的BooleanField支持字符串形式的輸入方式

2、

讓Django的BooleanField支持字符串形式的輸入方式

以上這篇讓Django的BooleanField支持字符串形式的輸入方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
成人蜜臀av电影| 日韩美女啊v在线免费观看| 激情久久五月| 中国女人久久久| 色94色欧美sute亚洲线路一ni | 欧美三级欧美一级| 91精品国产色综合久久不卡蜜臀 | 亚洲女与黑人做爰| 老司机午夜精品| jiyouzz国产精品久久| 一本久道久久久| 亚洲天堂免费看| 在线精品一区| 91精品国产综合久久久久| 1000部国产精品成人观看| 免费看黄色91| 99久久久国产精品免费蜜臀| 国产精品一二| 亚洲欧美日韩专区| 日韩精品一区在线| 亚洲精品免费在线| 国产成人在线电影| 亚洲精品在线免费| 欧美一区二区三区免费在线看 | 欧美视频中文字幕| 国产精品久久久久久久久免费相片 | 欧美日韩国产亚洲一区| 翔田千里一区二区| 午夜天堂影视香蕉久久| 国产精品911| 国产日韩欧美在线播放不卡| 怡红院av一区二区三区| 亚洲一区二区三区午夜| 婷婷六月综合网| 欧美性三三影院| 精品午夜一区二区三区在线观看| 亚洲动漫精品| 亚洲欧美在线视频观看| 亚洲黄色av| 欧美成人免费网站| 日本三级亚洲精品| 亚洲香蕉网站| 亚洲精品久久久蜜桃| 在线一区亚洲| 婷婷中文字幕综合| 在线电影欧美成精品| 亚洲电影一区二区三区| 成人性生交大片免费看中文网站| 欧美一二区视频| 日韩av高清在线观看| 精品视频在线看| 成人av小说网| 欧洲精品在线观看| 艳妇臀荡乳欲伦亚洲一区| 欧美影院一区| 91精品蜜臀在线一区尤物| 成人美女视频在线观看| 久久精品一区蜜桃臀影院| 美女在线一区二区| 性欧美videos另类喷潮| 蜜桃av噜噜一区| 日韩欧美黄色影院| 狠狠色噜噜狠狠狠狠色吗综合| 一区二区三区国产| 欧美在线影院一区二区| 国产成人综合在线| 欧美经典一区二区| 国产精品一区二区视频| 欧美精品一区二区精品网| 日本特黄久久久高潮| 欧美一区二区三区白人| 欧美三区在线| 婷婷久久综合九色国产成人| 欧美一区二区三区啪啪| 欧美视频在线观看| 亚洲va天堂va国产va久| 欧美一二三区精品| 亚洲高清不卡| 蜜臀精品久久久久久蜜臀| 精品成人a区在线观看| 一本色道久久综合亚洲精品婷婷| 青娱乐精品在线视频| 欧美大度的电影原声| 激情欧美丁香| 男女男精品视频| 久久久久久久综合狠狠综合| 成人免费毛片嘿嘿连载视频| 国产精品污污网站在线观看| 欧美日韩爆操| 国产精品无人区| 在线观看一区二区视频| 91麻豆成人久久精品二区三区| 久久综合久久综合久久综合| 久久成人久久鬼色| 国产精品狼人久久影院观看方式| 在线精品视频一区二区| 亚洲午夜av| 国产一区二区剧情av在线| 欧美一区二区三区成人| 在线欧美福利| 国产一区二区三区精品欧美日韩一区二区三区 | 石原莉奈在线亚洲二区| 国产精品久久久久久模特| 国产精品一区二区三区乱码| 亚洲美女少妇撒尿| 欧美一区二区免费| 六月丁香综合| 免费不卡在线观看| 国产欧美精品日韩区二区麻豆天美| 99热在这里有精品免费| 亚洲福利一二三区| 国产欧美一区二区三区鸳鸯浴| 日本道精品一区二区三区| 欧美精品在线一区| 国内精品免费在线观看| 欧美成人bangbros| 久久精品观看| 欧美日韩国产三区| 国产成人一区在线| 日韩不卡一二三区| 亚洲人成亚洲人成在线观看图片| 日韩区在线观看| 色噜噜夜夜夜综合网| 合欧美一区二区三区| 亚洲精品老司机| 欧美mv日韩mv国产网站app| 久久综合一区| 国产不卡高清在线观看视频| 久久久久99精品一区| 久久午夜av| 亚洲高清免费| 99精品黄色片免费大全| 久久超碰97人人做人人爱| 亚洲精品中文在线观看| 精品91自产拍在线观看一区| 欧美午夜一区二区三区| 日韩一级精品| 亚洲一级网站| 欧美福利一区| 国产91精品一区二区麻豆网站 | 久久久久久久久一| 制服丝袜国产精品| 91久久一区二区| 国产农村妇女毛片精品久久莱园子| 欧美激情1区2区3区| 国产jizzjizz一区二区| 久久99精品一区二区三区三区| 亚洲成人自拍网| 亚洲色欲色欲www| 国产日韩亚洲欧美综合| 日韩一级大片在线| 欧美午夜精品免费| 久久久xxx| 亚洲精品影院| 激情视频一区二区| 欧美人成在线| 欧美承认网站| 99久久久久免费精品国产| 国产69精品久久99不卡| 国产乱妇无码大片在线观看| 久久激情五月婷婷| 麻豆精品视频在线| 美女视频一区二区三区| 日韩中文字幕麻豆| 日韩高清欧美激情| 午夜欧美视频在线观看| 一区二区三区四区视频精品免费 | 国内成人自拍视频| 久久精品免费观看| 喷水一区二区三区| 日本欧美久久久久免费播放网| 亚洲高清视频的网址| 一区二区国产盗摄色噜噜| 一级特黄大欧美久久久| 一级精品视频在线观看宜春院| 亚洲一区在线观看免费观看电影高清| 欧美精品高清视频| 欧美午夜寂寞影院| 欧美日韩在线播| 欧美色网站导航| 精品视频1区2区3区| 欧美日韩国产一级片| 精品1区2区| 亚洲电影av| 亚洲欧洲精品一区| 亚洲国产99| 在线综合亚洲| 国产精品日韩精品欧美精品| 亚洲一区二区三区高清| 翔田千里一区二区| 久久综合中文色婷婷| 欧美亚洲高清一区| 这里只有精品电影| 精品美女一区二区三区| 国产亚洲精品7777| 国产精品久久久久久久久免费相片| 亚洲同性gay激情无套| 一区二区三区精品视频| 日韩高清在线一区| 国产一区二区三区久久悠悠色av|