Вместо Django ORM добавьте переменную .filter - PullRequest
0 голосов
/ 19 апреля 2019

В моем проекте у меня есть функция с запросом ORM Django внутри. Я бы передал в .filter parth список значений, передаваемых в функцию:

def testFilter(filterlist):
    #for example filterlist could be: thread='DEAD',id=11,t_type='SA'
     myquery = t_threads.objects.filter(filterlist).select_related().order_by(lorder)[x:y]

но если я, например, запустите мою функцию:

testFilter("id=1,thread='LIVE'")

Я получил ошибку:

ValueError: слишком много значений для распаковки (ожидается 2)

Как я могу выполнить свой запрос ORM, передавая директиву фильтра каждый раз, когда я запускаю функцию?

Огромное спасибо заранее

1 Ответ

0 голосов
/ 19 апреля 2019

Вы должны использовать kwargs для этого:

def testFilter(**kwargs):
     myquery = t_threads.objects.filter(**kwargs)...

testFilter(id=1, thread='LIVE')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...