1. 程式人生 > >Django QuerySet 多表聯查/條件選取/合併

Django QuerySet 多表聯查/條件選取/合併

  • 多表聯查
class A(models.Model): aname = models.CharField() class B(models.Model): bname = models.ForeignKey(A) B.objects.filter(bname__aname__contains='searchtitle') # 是兩個 '_' 。
  • 條件選取QuerySet
filter 表示 = exclude 表示 != querySet.distinct() 去重複 __exact 精確等於 like 'aaa' __iexact 精確等於 忽略大小寫 ilike 'aaa' __contains 包含 like '%aaa%' __icontains 包含 忽略大小寫 ilike '%aaa%',但是對於sqlite來說,contains的作用效果等同於icontains。 __gt 大於 __gte 大於等於 __lt 小於 __lte 小於等於 __in 存在於一個list範圍內 __startswith 以...開頭 __istartswith 以...開頭 忽略大小寫 __endswith 以...結尾 __iendswith 以...結尾,忽略大小寫 __range 在...範圍內 __year 日期欄位的年份 __month 日期欄位的月份 __day 日期欄位的日 __isnull=True/False
  • 在Django 總用 chain 合併多個QuerySet.
1.合併同一個model的多個QuerySet 的話,是可以採用這種方式的. QuerySet = QuerySet1 | QuerySet2 2.用chain 來實現,即使是不同的MODEL中查詢出來的資料,都可以合併到一個 list 中去. QuerySet = chain(QuerySet1, QuerySet2)