Django | отображение значения имени в опции select с помощью ajax (jquery), а не id
это код ajax
$('.addtasksubmit').click(function(e) {
e.preventDefault();
$.ajax({
url: 'addtodo',
type: "POST",
data: {
title: $('#task-title').val(),
category: $('#catsel option:selected').val(),
'csrfmiddlewaretoken':$('input[name=csrfmiddlewaretoken]').val()
},
success: function(response) {
console.log(response)
$('.todos-box').append(`
<a href="#" class="category-link">${response.category}</a>
`)
$("#addtodo").trigger('reset');
$("#exampleModal").modal('hide');
}
})
})
Так ${response.category} дает мне идентификатор категории, но мне нужно название категории для просмотра
и это views.py
response = {
'title': request.POST['title'],
'category' : request.POST['category'],
}
todo = Todo.objects.create(title=response['title'],
category=Category.objects.get(id=response['category']),
user=request.user)
todo.save()
return JsonResponse(response, safe=False)
Есть ли способ просмотреть название категории с помощью ajax, а не id? Или как я могу получить название категории с ее id.
извините за мой плохой английский...
Было бы полезно получить HTML select input с категориями из шаблона. Основываясь на том, что вы написали, пожалуйста, настройте views.py так
todo = Todo.objects.create(title=response['title'],
category = Category.objects.get(id=response['category']),
user=request.user)
todo.save()
response = {
'title': request.POST['title'],
'category' : category.name,
}
return JsonResponse(response, safe=False)
так что я решил его проблему после 5 дней попыток.
добавили это в представления
response['category']=Category.objects.filter(id=category)
.values('name').first()
data = json.dumps(response)
return HttpResponse(data)
и ajax
<div class="category-list flex-1">
<a href="#" class="category-link">${response['category'].name}</a>
</div>
и также добавил dataType: 'json'