Как получить все данные (записи), которые ищутся (например: мы получаем slug из frontend), с последней датой обновления.

класс А: некоторые поля класс B: user = models.ForeignKey(User, **CASCADE, related_name='sessions') DEVICES = ( ('android', 'android'), ('ios', 'ios') )

Мы создаем приборную панель для front end и есть поле поиска, пользователь должен ввести тип_устройства и мы используем для поиска записей, которые используют только IOS или Android.
В этом случае записи хранятся в таких полях как, Created_at, updated_at, device_type, user_id... Теперь нам нужно применить два фильтра:

  1. searched_key : ios или android
  2. latest_device_type : только последняя обновленная_запись

Я сделал так : User.objects.filter(Q(id=user_details['id']) & Q(sessions__device_type=self.search_key) & Q(reduce(or_, self.query_filter))).order_by('sessions__user_id', '-sessions__created_at').distinct('sessions__user_id').
values('id', 'sessions__device_type', 'first_name')

Но я не получаю точного результата: даже я пробовал [0] помещая это после order_by и latest() и first() метод будет получать только одну запись, так что любой 1 имеет лучшее решение для этого. Примечание: если кто-то пытается объяснить с помощью Prefetch, пожалуйста, объясните с ясностью.

Вернуться на верх