este es el codigo 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'); } }) })y esto es vistas.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)esto es html
<select name="category" class="form-select form-select-sm" id="catsel"> <option seleted>Choose Category</option> {% for category in categories %} <option value="{{ category.id }}">{{ category }}</option> {% endfor %} </select>Perdón por mi mal ingles..
añadido esto a las vistas
response['category']=Category.objects.filter(id=category) .values('name').first() data = json.dumps(response) return HttpResponse(data)y ajax
<div class="category-list flex-1"> <a href="#" class="category-link">${response['category'].name}</a> </div> y también agregó dataType: 'json'
Sería útil obtener la entrada de selección HTML con las categorías de la plantilla. Según lo que publicaste, ajusta vistas.py a
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)