Django: фильтр на основе значений словаря - PullRequest
0 голосов
/ 28 августа 2018

У меня есть администратор django как -

User Name City Number John_Lincoln_roma_1.0 John_Lincoln_roma roma 1.0 Eddie_paul_roma_1.1 Eddie_paul_roma roma 1.1 Shin_roma_1.2 Shin_roma roma 1.2 Sinclair_madrid_1.0 Sinclair_madrid madrid 1.0 Jessie_madrid_1.1 Jessie_madrid madrid 1.1

Я хочу применить запрос, который должен вернуть мне User на основе номера Max, который равен 1.2 и 1.1, и записи, которую он должен дать мне, это Shin_roma_1.2 и Jessie_madrid_1.1

Ниже приведен фрагмент, который я пробовал -

some_object.values('name').annotate(number=Max('number')).order_by()

Получение результата как -

result = [{'number': u'1.2', 'name': u'Shin_roma'}, {'number': u'1.1', 'name': u'Jessie_madrid'},

print type(result) <class 'django.db.models.query.QuerySet'>

Я хочу запрос или фильтр, который возвращает User на основе фильтрации значений словаря, которые находятся в result.

Как правило, я хочу группировать данные на основе CITY, а на основе City Shin_roma_1.2 и Jessie_madrid_1.1 - Макс. Поэтому он должен вернуть мне пользователя с номером Max по порядку City

Я пробовал что-то подобное, но я не получил результат (я знаю, что это неправильно) -

result.filter(result__number="number",result__city="city")

Прошел через стекопотока, но не получил решение.

Пожалуйста, дайте мне знать, если что-то неясно. Надеюсь, все ясно.

Спасибо.!

1 Ответ

0 голосов
/ 29 августа 2018

здесь моя модель называется "Dummy", я использовал те же атрибуты, которые вы дали, и я получаю результат, который вы дали.

obj=dummy.objects.values('user').order_by('-number','-name')[:2]
>>> obj
<QuerySet [{'user': 'Shin_roma_1.2'}, {'user': 'Jessie_madrid_1.1'}]>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...