簡體   English   中英

Django模型使用數組查詢集

[英]Django models queryset with array

我想制作一個函數,該函數將返回名稱包含一些文本的應用程序。

假設我們有以下模型:

class Application(models.Model):
    name = models.CharField(max_lenght=100)

Example values: "T2 AAA", "T2 BBB", "FSA KK" etc.

現在,我想編寫一個函數,如果此函數的屬性為AAA,則應返回應用程序T2 AAA:

def getApplication(request, title):
    titleVars = title.split(' ')
    applications = Application.objects.filter(name__in=titleVars)

老實說,我不知道該怎么做,我認為我應該使用icontains但是我不知道它如何應用於數組titleVars

執行示例:

getApplication(request, 'Some text whatever T2 AAA XXX/K')

提前致謝

我想您正在尋找類似的搜索。

使用Q() -

from django.db.models import Q

obj_list = Application.objects.filter(reduce(lambda x, y: x | y, [Q(name__contains=word) for word in titleVars]))

那就是推薦的方法。

其他選項-

您可以使用django-like來做到這一點(ref- answer ):

Application.objects.filter(name__like=titleVars[1])

其他方法是您可以遍歷數組項,並進行正則表達式檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM