Как перенаправить на объект, возвращаемый автозаполнением Ajax в django?
Я получаю объекты из базы данных, используя Ajax автозаполнение в общем поле ввода поиска. Теперь я хочу сделать результаты поиска кликабельными и перенаправить на страницу объекта.
// jQuery autocomplete search
$(function () {
$('#header-search-bar').autocomplete({
// data to be passed from backend
source: '/autocomplete/',
// length of search string
minLength: 3,
// redirect to pollers
select: function(event, ui) {
location.href="poller/" + ui.item.poller_id;
}
})
})
// Django view / backend query to database
def autocomplete(request):
if 'term' in request.GET:
qs = Poller.objects.filter(poller_text__icontains=request.GET.get('term'))
pollers = list()
for poller in qs:
pollers.append(poller.poller)
return JsonResponse(pollers, safe=False)
else:
pass
// Model
class Poller(models.Model):
poller_id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
poller_text =models.CharField(min_length=250)
// Redirect url to single Poller
path('poller/<uuid:poller_id>/', render_single_poller, name='single_poller'),
Таким образом, желаемый url для перенаправления будет
poller/poller_id/
Приведенный выше подход jQuery отображает poller_text
каждого объекта, но не перенаправляет на него. Как я могу дополнительно "построить" нужный url и перенаправить на него, так как я не знаю, как добавить в список больше, чем poller_text
.
Прямо сейчас он возвращает