最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django filter過濾器實(shí)現(xiàn)顯示某個(gè)類型指定字段不同值方式

 更新時(shí)間:2020年07月16日 08:48:07   作者:huoyuanshen  
這篇文章主要介紹了django filter過濾器實(shí)現(xiàn)顯示某個(gè)類型指定字段不同值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

1,前端樣式

2,html代碼

{% load asset_filter %}
<div class="col-sm-2">
 <select class="input-sm form-control select2 inline" name="ServiceModel">
 <option value="">模塊</option>
 {% for i in 'Ecs'|ecs_model_field_distinct:'ServiceModel' %}
 {% if i.0 %}
 <option value="{{ i.0 }}">{{ i.0 }}</option>
 {% endif %}
 {% endfor %}
 </select>
</div>

3,后端代碼

asset_filter.py 內(nèi)容如下:


@register.filter(name='ecs_model_field_distinct')
def ecs_model_field_distinct(model_name, field_name):
 '''
 獲取model_name模塊對(duì)象的某個(gè)屬性field_name的distinct值,返回值的數(shù)組
 :param model_name:
 :param field_name:
 :return:
 '''
 asset_app = apps.get_app_config('rule')
 return asset_app.get_model(model_name).objects.all().values_list(field_name).distinct()

補(bǔ)充知識(shí):django 模型類的常見字段約束,以及filter 過濾和查詢

null

不設(shè)置時(shí)默認(rèn)設(shè)置為False。設(shè)置為True時(shí),數(shù)據(jù)庫表字段中將存入NULL的記錄。 null和blank組合使用,null=True,blank=True,表示該字段可以為空

blank

默認(rèn)設(shè)置為False。設(shè)置為True時(shí),表字段許可無任何輸入。設(shè)置為False 時(shí),表字段為必須輸入的字段

choices

備選設(shè)置。選擇列表選項(xiàng),如果設(shè)置后,該字段的表單必然會(huì)是下拉選擇的。這個(gè)值必須是一個(gè)有小括號(hào)構(gòu)成的元組,每個(gè)元組前一個(gè)字段將存入數(shù)據(jù)庫,后一個(gè)字段是顯示給用戶看的。

default

默認(rèn)值,設(shè)置后在用戶無輸入時(shí),表字段將以這個(gè)選項(xiàng)的內(nèi)容來存儲(chǔ)到數(shù)據(jù)庫字段

可以為python 支持的任意數(shù)據(jù)對(duì)象

editable

如何設(shè)置為False,將不會(huì)參與到表單的驗(yàn)證。默認(rèn)是設(shè)置為True的

error_messages

這個(gè)選項(xiàng)實(shí)現(xiàn)校驗(yàn)時(shí)的錯(cuò)誤提示。是字典結(jié)構(gòu)的內(nèi)容。

help_text

在表單中形成輸入提示內(nèi)容

primary_key

主鍵,設(shè)置為 True ,該字段將啟用為主鍵。 默認(rèn)是 False

unique

設(shè)置為 True 啟用不存在重復(fù)值輸入的設(shè)定,默認(rèn)為False

unique_for_date

設(shè)定日期不存在重復(fù)輸入,默認(rèn)為False

verbose_name

字段的文本標(biāo)簽

validators

校驗(yàn)選項(xiàng),用來配置校驗(yàn)的方法,構(gòu)成的列表。

max_length

最大輸入字符串的長度

min_length

最少輸入字符串的長度

AutoField 自動(dòng)增值的id字段

primary_key=True 為必設(shè)置選項(xiàng)

BigAutoField 自動(dòng)增值的id字段

支持 1 到 9223372036854775807,之間的序號(hào)

BigIntegerField 長整形字段

從 -9223372036854775808 到9223372036854775807 的整數(shù)

BinaryField 二進(jìn)制字段

存儲(chǔ)內(nèi)存二進(jìn)制數(shù)據(jù),以 python bytes 對(duì)象來訪問

BooleanField 布爾值字段

如果許可空的布爾值輸入,換用 NullBooleadField

CharField可變長字符串字段

max_length 有最大輸入選項(xiàng)為必須設(shè)置的選項(xiàng)

DateField日期字段

auto_now:每一次保存對(duì)象時(shí),Django 都會(huì)自動(dòng)將該字段的值設(shè)置為當(dāng)前時(shí)間。一般用來表示 "最后修改" 時(shí)間。要注意使用的是當(dāng)前日期,而并非默認(rèn)值,所以

不能通過重寫默認(rèn)值的辦法來改變保存時(shí)間。

auto_now_add:在第一次創(chuàng)建對(duì)象時(shí),Django 自動(dòng)將該字段的值設(shè)置為當(dāng)前時(shí)間,一般用來表示對(duì)象創(chuàng)建時(shí)間。它使用的同樣是當(dāng)前日期,而非默認(rèn)值

DateTimeField 有時(shí)刻的日期字段

auto_now=False

auto_now_add=False

當(dāng)auto_now或者auto_now_add設(shè)置為True時(shí),字段會(huì)有editable=True和blank=True的設(shè)定

; 固定精度的十進(jìn)制數(shù)的字段。

它有兩個(gè)必須的參數(shù)

max_digits:數(shù)字允許的最大位數(shù)

decimal_places:小數(shù)的最大位數(shù)

例如,要存儲(chǔ)的數(shù)字最大值是999,而帶有兩個(gè)小數(shù)位,你可以使用

models.DecimalField(..., max_digits=5, decimal_places=2)

DurationField 日期時(shí)間增量型字段,存儲(chǔ)著python timedelta 類數(shù)據(jù)

EmailField 郵件字段

FileField 文件字段

FilePathField 文件路徑字段

FloatField 小數(shù)字段

ImageField 圖片字段

IntegerField 整數(shù)字段

GenericIPAddressField ip地址字段

NullBooleanField 許可null的布爾值字段

PositiveIntegerField

0 到 2147483647,支持所有數(shù)據(jù)庫取值范圍的安全整數(shù)。

PositiveSmallIntegerField

0 到 32767 支持所有數(shù)據(jù)庫取值范圍的安全短整數(shù)。

SlugField

SmallIntegerField 短整形字段

TextField 備注型字段,用于存儲(chǔ)復(fù)雜

TimeField 時(shí)間字段

URLField 網(wǎng)址字段

UUIDField

Python UUID 數(shù)據(jù)對(duì)象,一個(gè)32位長度的ID字符串

映射字段

ForeignKeyField 一對(duì)多字段

映射字段

ManyToManyField 多對(duì)多字段

映射字段

OneToOneField 一對(duì)一字段

表的查詢

查詢

Person.objects.all().order_by(“-username”) 按照username字段值 反向排序

Person.objects.all()[:10]切片操作,獲取10個(gè)人,不支持負(fù)索引,切片可以節(jié)約內(nèi)存,不支持負(fù)切片

Person.objects.get(name=name) get獲取不到報(bào)異常,不可取

get是用來獲取一個(gè)對(duì)象的,如果需要獲取滿足條件的一些人,就要用到filter

Person.objects.filter(name="abc")# 等于

Person.objects.filter(name__exact="abc")名稱嚴(yán)格等于 "abc" 的人

Person.objects.filter(name__iexact="abc")# 名稱為abc 但是不區(qū)分大小寫,可以找到ABC, Abc, aBC,這些都符合條件

***Person.objects.filter(name__contains="abc")# 名稱中包含"abc"的人

***Person.objects.filter(name__icontains="abc")#名稱中包含"abc",且abc不區(qū)分大小寫

Person.objects.filter(name__regex="^abc")# 正則表達(dá)式查詢

Person.objects.filter(name__iregex="^abc")#正則表達(dá)式不區(qū)分大小寫

****

Person.objects.filter(age__gt=15)# age > 15

Person.objects.filter(age__lt=15)# age < 15

Person.objects.filter(age__gte=15)# age >= 15

Person.objects.filter(age__lte=15)# age <= 15

Person.objects.filter(age__ne=15)# age != 15

數(shù)據(jù)的歸檔

times = Person.objects.datas('add_time','month',order='desc') 默認(rèn)正序,desc 倒序

month 表示精準(zhǔn)到月

前端頁面

{% for time in times %}

{{ time.year }} 年 {{time.month}} 月 {{time.day}}日 精準(zhǔn)到月,這個(gè)time.day 永遠(yuǎn)是 1

{% endfor %}

filter 過濾有多個(gè)條件時(shí)

使用django的Q對(duì)象表示或者

from django.db.models import Q

Person.objects.filter(Q(name='張三') | Q(age=18))

查詢過濾字段

__exact 精確等于 like 'aaa'

__iexact 精確等于 忽略大小寫 ilike 'aaa'

__contains 包含 like'%aaa%'

__icontains 包含 忽略大小寫 ilike '%aaa%',但是對(duì)于sqlite來說,contains的作用效果等同于icontains。

__gt 大于

__gte 大于等于

__lt 小于

__lte 小于等于

__in存在于一個(gè)list范圍內(nèi)

*****

__startswith以...開頭

__istartswith以...開頭忽略大小寫

__endswith以...結(jié)尾

__iendswith以...結(jié)尾,忽略大小寫

__range 在...范圍內(nèi)

__year日期字段的年份 如 .filter(add_time_year ='2018') 篩選添加時(shí)間年份為2018年的數(shù)據(jù)

__month日期字段的月份

__day日期字段的日

__isnull=True/False

以上這篇django filter過濾器實(shí)現(xiàn)顯示某個(gè)類型指定字段不同值方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中os.path.join()函數(shù)實(shí)例用法

    python中os.path.join()函數(shù)實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于python中os.path.join()函數(shù)實(shí)例用法,有興趣的朋友們可以跟著學(xué)習(xí)參考下。
    2021-05-05
  • python中celery的基本使用詳情

    python中celery的基本使用詳情

    這篇文章主要介紹了python中celery的基本使用詳情,Celery 是由Python 編寫的簡單,靈活,可靠的用來處理大量信息的分布式系統(tǒng),它同時(shí)提供操作和維護(hù)分布式系統(tǒng)所需的工具。Celery 專注于實(shí)時(shí)任務(wù)處理,支持任務(wù)調(diào)度
    2022-09-09
  • PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類GCNConv參數(shù)詳解

    PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類GCNConv參數(shù)詳解

    這篇文章主要為大家介紹了PyG搭建GCN模型實(shí)現(xiàn)節(jié)點(diǎn)分類GCNConv參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 使用scrapy實(shí)現(xiàn)爬網(wǎng)站例子和實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(蜘蛛)的步驟

    使用scrapy實(shí)現(xiàn)爬網(wǎng)站例子和實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(蜘蛛)的步驟

    本文分二個(gè)示例,第一個(gè)是個(gè)簡單的爬網(wǎng)站的小例子,第二個(gè)例子實(shí)現(xiàn)目是從一個(gè)網(wǎng)站的列表頁抓取文章列表,然后存入數(shù)據(jù)庫中,數(shù)據(jù)庫包括文章標(biāo)題、鏈接、時(shí)間,大家參考使用吧
    2014-01-01
  • Pytorch使用Visdom進(jìn)行數(shù)據(jù)可視化的示例代碼

    Pytorch使用Visdom進(jìn)行數(shù)據(jù)可視化的示例代碼

    pytorch Visdom可視化,是一個(gè)靈活的工具,用于創(chuàng)建,組織和共享實(shí)時(shí)豐富數(shù)據(jù)的可視化,這個(gè)博客簡要介紹一下在使用Pytorch進(jìn)行數(shù)據(jù)可視化的一些內(nèi)容,感興趣的朋友可以參考下
    2023-12-12
  • 基于python實(shí)現(xiàn)垂直爬蟲系統(tǒng)的方法詳解

    基于python實(shí)現(xiàn)垂直爬蟲系統(tǒng)的方法詳解

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)垂直爬蟲系統(tǒng)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 壓縮包密碼破解示例分享(類似典破解)

    壓縮包密碼破解示例分享(類似典破解)

    有一個(gè)壓縮包密碼忘了,寫了一個(gè)小腳本實(shí)現(xiàn)一個(gè)解密的功能,輸入自己常用密碼中的單詞后,腳本將這些密碼組合嘗試解壓壓縮包
    2014-01-01
  • Python 多線程超詳細(xì)到位總結(jié)

    Python 多線程超詳細(xì)到位總結(jié)

    線程在程序中是獨(dú)立的、并發(fā)的執(zhí)行流。與分隔的進(jìn)程相比,進(jìn)程中線程之間的隔離程度要小,它們共享內(nèi)存、文件句柄和其他進(jìn)程應(yīng)有的狀態(tài)。線程的劃分尺度小于進(jìn)程,使多線程程序的并發(fā)性高。進(jìn)程在執(zhí)行過程中擁有獨(dú)立內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而提升程序運(yùn)行效率
    2021-11-11
  • python 消除 futureWarning問題的解決

    python 消除 futureWarning問題的解決

    今天小編就為大家分享一篇python 消除 futureWarning問題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問題

    Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問題

    這篇文章主要介紹了Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問題,本文通過圖文實(shí)例相結(jié)合給大家分享解決方案,需要的朋友可以參考下
    2021-08-08

最新評(píng)論

洪雅县| 隆回县| 玉树县| 齐齐哈尔市| 兴仁县| 高安市| 讷河市| 邵武市| 余庆县| 江华| 大悟县| 斗六市| 辽阳县| 项城市| 文登市| 罗甸县| 双柏县| 德庆县| 体育| 隆尧县| 上思县| 图们市| 东丽区| 凉城县| 广东省| 盐山县| 共和县| 建德市| 鄂托克前旗| 陈巴尔虎旗| 盐亭县| 偃师市| 天祝| 安远县| 吉林省| 武宣县| 自贡市| 昂仁县| 射阳县| 北宁市| 禹州市|