Значения вложенных фильтров Django - PullRequest
0 голосов
/ 07 июля 2010

Эта строка работает и возвращает искомое значение:

logs = Log.objects.filter(filterURI=aFilter.uri).values()[0]['yk']

Однако, когда я пытаюсь добавить другой фильтр и делаю то же самое, я получаю ошибки:

logs = Log.objects.filter(filterURI=aFilter.uri).filter(k=k-1).values()[0]['yk']

Насколько я понимаю, object.filter возвращает набор запросов, но так же как и "фильтр фильтра". Так что я должен быть в состоянии сделать вызов 'values' одинаково, независимо от того, есть ли у меня один фильтр или 1000.

Что я тут не так делаю.

Заранее спасибо.

1 Ответ

0 голосов
/ 07 июля 2010

Я не думаю, что ошибка в том, что у вас есть два фильтра - это фактический второй фильтр.k=k-1 будет работать, только если у вас есть и поле модели и локальная переменная с именем k - первая слева от выражения, вторая справа.

Если выхотите сослаться на поле модели справа от выражения, используйте F:

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