Как получить идентификатор пользователя из поискового ввода URL, содержащего имя и фамилию
Я создал строку поиска, где пользователи могут искать по имени и/или фамилии других пользователей. Когда они отправляют запрос, он должен перенести их на страницу профиля этого пользователя на основе имени/фамилии, указанного в URL.
Скрипт из шаблона, где находится строка поиска - работает нормально:
<script>
new Autocomplete('#autocomplete', {
search : input => {
const url = `/search/?search_item=${input}`
return new Promise(resolve => {
fetch(url)
.then(response => response.json()
.then(data => {
resolve(data.data)
}))
})
},
})
</script>
urls.py
path('search/', views.search_name, name='search_name'),
views.py, который генерирует список пользователей в базе данных, соответствующих элементу поиска:
@login_required
def search_name(request):
search_item = request.GET.get('search_item')
payload = []
if search_item:
search_item_objects = User.objects.filter(
Q(first_name__icontains=search_item) | Q(last_name__icontains=search_item))
for search_item_object in search_item_objects:
payload.append(search_item_object.first_name + ' ' + search_item_object.last_name)
return JsonResponse({'status':200, 'data': payload})
Теперь, я добавил onSubmit в скрипт - таким образом, обновленный шаблон выглядит так:
<script>
new Autocomplete('#autocomplete', {
search : input => {
const url = `/search/?search_item=${input}`
return new Promise(resolve => {
fetch(url)
.then(response => response.json()
.then(data => {
resolve(data.data)
}))
})
},
onSubmit : result => {
window.open(`/member/?search_item=${result}`)
}
})
</script>
Вот что я получаю:
http://club/member/?search_item=Johny%20Bravo
Как получить ID пользователя, имеющего URL {result} 'Johny' 'Bravo', чтобы я мог позже передать его в представления для создания шаблона для этого пользователя, примерно так, как показано ниже:
@login_required
def member(request, id):
member = User.objects.get(id=id)
context = {'member':member,}
return render(request, 'club/member.html', context)
У меня нет опыта в JS, должен ли onSubmit выполнять различные действия для передачи деталей в views.py?