日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django filter查询多选_动态filter查询数据Django实现方法

發布時間:2025/3/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django filter查询多选_动态filter查询数据Django实现方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是我在學習Django時看到的關于動態filter查詢數據Django實現方法。當時很受用,解決了我在工作中遇到的一個問題。可能有朋友會需要,轉來玩蛇網python學習平臺和大家一同分享下。

在平時用Djangoa工作時,需要處理像是對多個字段進行查詢找結果這樣的任務太常見了。如果是既定的固定字段還行,要是遇到需要處理動態字段的時候,真是一個頭兩個大的感腳。需要有個好的思路,別人給一點點指定就豁然開朗的感覺很好。

動態filter查詢數據Django實現方法代碼如下:

比如有個類,像下邊這樣:

class Entry( models.Model ):

user = models.CharField(max_length=64)

category = models.CharField(max_length=64 )

title = models.CharField( max_length = 64 )

entry_text = models.TextField()

deleted_datetime = models.DateTimeField()

我們進行一個動態的查詢,這里就需要用到 kwargs.

kwargs = {

# 動態查詢的字段

}

# 選擇deleted_datetime為空的記錄

if exclude_deleted:

kwargs[ 'deleted_datetime__isnull' ] = True

# 選擇特的category

if category is not None:

kwargs[ 'category' ] = category

# 特定的用戶

if current_user_only:

kwargs[ 'user' ] = current_user

# 根據標題查詢

if title_search_query != '':

kwargs[ 'title__icontains' ] = title_search_query

# 應用所有的查詢

entries = Entry.objects.filter( **kwargs )

# 打印出所有的結果檢查

print entries

#---------------www.iplaypy.com-----------------------------------

在這里要注意,如果用這種方式,在Q object方式下,是有問題的,要采用如下方式來處理。

kwargs = { 'deleted_datetime__isnull': True }

args = ( Q( title__icontains = 'Foo' ) | Q( title__icontains = 'Bar' ) )

entries = Entry.objects.filter( *args, **kwargs )

玩蛇網文章,轉載請注明出處和文章網址:https://www.iplaypy.com/code/other/o2133.html

相關文章 Recommend

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的django filter查询多选_动态filter查询数据Django实现方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。