С учетом следующих моделей Django:
class Room(models.Model):
name = models.CharField(max_length=20)
class Beacon(models.Model):
room = models.ForeignKey(Room)
uuid = models.UUIDField(default=uuid.uuid4)
major = models.PostiveIntegerField(max_value=65536)
minor = models.PositiveIntegerField(max_value=65536)
Модель Beacon
представляет собой связь маяка Bluetooth с комнатой.
Я хочу выбрать все комнаты, соответствующие данному uuid, major, minor
комбинация.
Суть в том, что я хочу заказать номера у ближайшего ко мне маяка.Из-за этого мне нужно иметь возможность динамически присваивать значение каждому маяку, а затем сортировать по нему.
Возможно ли это с Django ORM?В Django 1.8?
NOTE - я заранее буду знать порядок расположения маяков, я буду использовать порядок их передачи в строке запроса.Итак, первый пройденный маяк (uuid, major, minor) должен соответствовать первой комнате, возвращаемой Room QuerySet
Я предполагаю что-то подобное, хотя знаю, что это не сработает:
beacon_order = [
beacon1 = 1,
beacon0 = 2,
beacon3 = 3,
]
queryset = Room.objects.annotate(beacon_order=beacon_order).\
order_by('beacon_order')