資料查詢與過濾(上)FilterSchema 介紹
這是 Django Ninja 系列教學的第 26 篇。
「查詢」是 API 中常見的附加需求,本質上是對資料的過濾(filtering)與篩選。
無論是篩選文章、商品,還是查詢用戶,根據不同條件來過濾資料並獲得結果,可說是大部分專案的必備功能。
在 view 函式中,實作查詢最簡單的方式,就是使用 Django ORM 的過濾方法。例如,我們可以用filter
方法來根據特定條件篩選 QuerySet。
這種方法簡單直接,適合基本的查詢需求。然而,它也有其局限性——隨著欄位與需求的增加,查詢條件可能變得越來越複雜,導致程式碼冗長且難以維護。
為了解決這一問題,Django Ninja 提供了 FilterSchema,讓我們可以用更「結構化」的方式,定義並管理查詢條件。
本文將介紹 FilterSchema,一步步實作與講解,讓你了解如何在 Django Ninja 中使用 FilterSchema,實現更加靈活、模組化的 API 查詢功能。
本文所有的程式碼改動,可參考這個 PR。