Следующий код используется для определения порядка объектов по мере их отправки в JSON. Он также позволяет подключать jquery datatables к тому, чтобы установить, в каком столбце устанавливается порядок, и если его восходящий или нисходящий. Это отлично подходит для упорядочивания объектов по умолчанию, но что, если я хочу заказать объект на основе связанного поля? Как мне это сделать?Django как заказать объект на основе связанного с ним поля
objects = StoreLiquor.objects.filter(storeID=store_id)
keys = ['SPI', 'liquorID']
#sorting
order = dict(enumerate(keys))
dirs = {'asc': '', 'desc': '-'}
ordering = dirs[request.GET['sSortDir_0']] + order[int(request.GET['iSortCol_0'])]
objects = objects.order_by(ordering)
С помощью этого кода, это будет своего рода просто отлично на основе liquourID
, который является внешним ключом. Но как я могу заставить его сортировать по алфавиту на основе BrandName
, поля в таблице, которое liquourID
ссылок?
Я уже пробовал это, он ничего не меняет для сортировки в таблице, поскольку он все еще ищет только поле ликвора и ищет его. – RuSs
Как выглядит сгенерированный запрос после изменения 'order_by'? Вызовите 'print' на' objects.query', и вы увидите результат в терминале, на котором запущен 'runningerver'. Что делать, если вы также добавляете дополнительный FK в 'filter', а затем также вызываете' select_related'? – khampson
Если я установил order_by, как у вас есть, в разделе сортировки, то он будет сортироваться по названию бренда.Тем не менее, он разрушает все функциональные возможности, предоставляемые кодом, например, позволяет сортировать в обратном порядке или разрешать их сортировку различными объектами. – RuSs