P 7
P 7
reg.html
<!DOCTYPE html>
<body>
<form method="post" action="">
{% csrf_token %}
student name
<select name="sname">
{%for student in students %}
<option value="{{student.id}}">{{student.student_name}}</option>
{% endfor %}
</select><br>
Course name
<select name="cname">
{%for course in courses %}
<option value="{{course.id}}">{{course.course_name}}</option>
{% endfor %}
</select><br>
<input type="submit" value="Enroll">
</form>
</body>
</html>
view.html
from django.http import HttpResponse
from django.shortcuts import render
def reg(request):
if request.method=="POST":
sid=request.POST.get("sname")
cid=request.POST.get("cname")
student=Student.objects.get(id=sid)
course=Course.objects.get(id=cid)
res=student.enrolment.filter(id=cid)
if res:
return HttpResponse("<h1>student already enrolled</h1>")
student.enrolment.add(course)
return HttpResponse("<h1>student enrolled successfully</h1>")
else:
students=Student.objects.all()
courses=Course.objects.all()
return render(request, "reg.html", {"students":students,
"courses":courses})
urls.py
from django.contrib import admin
from django.urls import path, re_path
from app7.views import reg
urlpatterns = [
path('admin/', admin.site.urls),
path('reg/', reg),
]
class Student(models.Model):
student_usn=models.CharField(max_length=20)
student_name=models.CharField(max_length=100)
student_sem=models.IntegerField()
enrolment=models.ManyToManyField(Course)
----------------------------for displaying------------------------
course_search.html
<html>
<body>
<form method="POST" action="">
courses
{% csrf_token %}
<select name="cname">
{%for course in courses %}
<option value="{{course.id}}">{{course.course_name}}</option>
{% endfor %}
</select>
<input type="submit" value="Search">
</form>
</body>
</html>
selected_student.html
<html>
<body>
<table border>
<tr>
<th> Student Name</th>
<th> Student USN</th>
<th>Sem</th>
</tr>
{% for student in student_list %}
<tr>
<td>{{student.student_name}}</td>
<td>{{student.student_usn}}</td>
<td>{{student.student_sem}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
views.py
def course_search(request):
if request.method=="POST":
cid=request.POST.get("cname")
s=Student.objects.all()
student_list=list()
for student in s:
if student.enrolment.filter(id=cid):
student_list.append(student)
if len(student_list)==0:
return HttpResponse("<h1> No Students enrolled</h2>")
return render(request,"selected_students.html",
{"student_list":student_list})
else:
courses=Course.objects.all()
return render(request, "course_search.html",{"courses":courses})
urls.py
from django.contrib import admin
from django.urls import path, re_path
from app7.views import reg, course_search
urlpatterns = [
path('admin/', admin.site.urls),
path('reg/', reg),
path('course_search/', course_search),
]