Develop a search application in Django using AJAX that displays courses enrolled by a student being searched
Program:-
views.py:-
from django.http import HttpResponse from django.shortcuts import render from ap3.models import Course, Student def course_search_ajax(request): if request.method == "POST": cid = request.POST.get("cname") s = Student.objects.all() student_list = [] for student in s: if student.enrolment.filter(id=cid).exists(): student_list.append(student) if len(student_list) == 0: return HttpResponse("<h1>No Students enrolled</h1>") return render(request, "selected_students.html", {"student_list": student_list}) else: courses = Course.objects.all() return render(request, "course_search_aj.html", {"courses": courses})
templates/course_search_aj.html:-
{% load static %} <html> <body> <form method="POST" action=""> courses {% csrf_token %} <select name="cname" id="cname"> {% for course in courses %} <option value="{{ course.id }}">{{ course.course_name }}</option> {% endfor %} </select> <input type="button" value="Search" id="serbtn"> <span id="result"></span> </form> </body> <script src="{% static 'jquery.min.js' %}"></script> <script> $(document).ready(function(){ $("#serbtn").click(function(){ var cname = $("#cname").val(); $.ajax({ url: "/course_search_ajax/", type: "POST", data: { cname: cname, csrfmiddlewaretoken: "{{ csrf_token }}" }, success: function(response){ $("#result").html(response); } }); }); }); </script> </html>
urls.py:-
from django.contrib import admin from django.urls import path from ap3.views import expr, cbox, regaj, course_search_ajax, cookie_demo admin.site.site_header = "My Site Header" admin.site.site_title = "My Site Title" admin.site.index_title = "My Site Index" urlpatterns = [ path('secretadmin/', admin.site.urls), path('course_search_ajax/', course_search_ajax), ]