[重要] Django 多條件多表查詢實例問題


當時想做一個多條件查詢,但是對於要查詢的信息,是分布在不同的表里,這就涉及到了多表查詢問題。

DjangoBook里提到了一些查詢的方式,但是不夠全面,就去百度搜了下。

當去網上百度搜多表查詢,或多條件查詢時,都能搜到,但是相對較綜合點的信息,還是比較少。但是為了實現功能,

也思考了不少。下面貼上一些搜集來的資料。

關於多條件查詢

 

data = model.objects.filter(條件1)
if a==4:
    data = data.fiter(條件2)
if b==4:
    data = data.filter(條件3)

  

kwargs = {}
if var1 != 'NONE':
   kwargs['field1'] = var1
if var2 is not None:
   kwargs['field2'] = var2
if var3 is not None:
   kwargs['field3'] = var3
if var4 is not None:
   kwargs['field4'] = var4
quest = model.objects.filter(**kwargs)

  

# 獲取動態過濾調價
def getKwargs(data={}):
     kwargs = {}
     kwargs['state'] = True 
     for (k , v)  in data.items() :
        if v is not None and v != u'' :
                 kwargs[k] = v          
        return kwargs

  

searchCondition = {'name__icontains' : name ,....}
kwargs = utils.getKwargs(searchCondition)
model_set = Model.objects.filter(**kwargs)

  

關於多表查詢

A表作為B表的外鍵,當通過B表查詢A表時候,可以通過__(兩個下划線)的方式過濾A表的內容

 

基本有這兩個知識,綜合起來就可以進行多表條件查詢了。

然后是一些自己的代碼,就不發了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM