Django OR 過濾器
我們將通過這個快速簡單的解釋來學習如何使用 OR
語句單獨執行過濾器,我們還將瞭解如何在 Django 查詢集中使用 Q
物件執行過濾器。
在 Django 查詢集中使用過濾器單獨執行 OR
語句並使用 Q
物件
在此示例中,我們將使用我們建立的已新增一些資料的資料庫,並向你展示它的外觀。
我們建立一個基本示例;我們將建立一個名為 posts
的變數並將所有資料儲存在該變數中。我們將執行一個過濾器,它允許我們建立一個簡單的 OR
語句。
首先,我們需要選擇我們想要做出 OR
語句的內容,所以讓我們收集所有學生的姓名,以 austin
或 baldwin
開頭。
我們正在使用 surname__startswith
引數並將其傳遞 surname 以提取以姓氏 austin
和 baldwin
開頭的所有學生記錄。
當我們執行伺服器時,我們看到它返回了兩個專案。
我們已經看到了一個帶有 OR
語句的基本示例,但我們可以新增另一個過濾器和更多 OR
語句。現在我們將處理另一個使用 OR
語句的示例,但這次我們使用的是 Q
物件。
這不是佇列物件的詳細演示,但我們會說它允許我們使用 Q
物件構建更復雜的查詢。我們將向你展示一個使用 Q
物件的示例。
程式碼指令幾乎相同,我們只是將所有內容包裝在一個 Q
物件周圍,在|
之後運算子,我們將新增另一個 Q
物件。我們不需要再次新增 Student.objects.filter()
。
我們應該先寫出來,然後將姓氏傳遞給 surname__startswith
引數。
讓我們繼續執行這個查詢,所以我們返回相同的結果。
如果我們想擴充套件它,我們可以根據需要不斷地新增到這個 OR
語句。我們新增了 not ~Q
,這意味著選擇除了姓氏以 baldwin
開頭的所有學生。
現在我們可以看到不再顯示所有的 baldwin
,因為我們定義了~
,它用於從資料庫中刪除或不選擇一個專案。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn