Program 6

For student and course models created in Lab experiment for Module2, register admin interfaces, perform migrations and illustrate data entry through admin forms.

views.py

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
from .models import Student,Course
def insertstudent(request):
    s1=Student(usn='21CS001', name='ABITH', sem=6)
    s2=Student(usn='21CS002', name='RAM', sem=6)
    s3=Student(usn='21CS003', name='SAM', sem=6)
    s4=Student(usn='21CS004', name='KUMAR', sem=6)
    s5=Student(usn='21CS005', name='RAJ', sem=6)
    for x in [s1,s2,s3,s4,s5]:
        x.save()
    return HttpResponse("insertion of student data successful")

def insertcourse(request):
    c1=Course(cid='21CS61',cname='SEPM')
    c2=Course(cid='21CS62',cname='FD')
    c3=Course(cid='21CS63',cname='CG')
    c4=Course(cid='21CS641',cname='AJJ')
    c5=Course(cid='21CS642',cname='DSV')
    for x in [c1,c2,c3,c4,c5]:
        x.save()
    return HttpResponse("insertion of course data successful") 

def enrollment(request,s,c):
    s=Student.objects.get(usn=s)
    l=c.split(',')
    for x in l:
        cc=Course.objects.get(cname=x)
        s.courses.add(cc)
    return HttpResponse("course enrollment successful") 

def display(request):
    s=Student.objects.all()
    res="<table border='2'><tr><th>USN</th><th>   NAME </th> <th> SEM </th><th>   COURSES</th></tr>"
    for x in s:
        res+="<tr><td>"+x.usn+"</td><td>"+x.name+"</td><td> "+str(x.sem)+"</td><td>  "
        l=x.courses.all().values()
        for a in l:
            res+=a['cname']+" , "
        res+="</td></tr>"
    res+="</table>"
    return HttpResponse(res)

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('student',views.insertstudent),
    path('course',views.insertcourse),
    path('enroll/<str:s>/<str:c>',views.enrollment),
    path('display',views.display),
]

models.py

from django.db import models

# Create your models here.
class Course(models.Model):
    cid=models.CharField(max_length=10, primary_key=True)
    cname=models.CharField(max_length=30)

class Student(models.Model):
    usn=models.CharField(max_length=10, primary_key=True)
    name=models.CharField(max_length=30)
    sem=models.IntegerField()
    courses=models.ManyToManyField(Course)

admin.py

from django.contrib import admin

# Register your models here.
from .models import Course,Student

class StudentAdmin(admin.ModelAdmin):
    list_display = ('usn', 'name', 'sem')
    list_filter = ['sem']
    search_fields = ['name', 'usn']
    ordering = ['name']

class CourseAdmin(admin.ModelAdmin):
    list_display = ('cid', 'cname')
    search_fields = ['cname', 'cid']
    ordering = ['cname']

admin.site.register(Student, StudentAdmin)
admin.site.register(Course, CourseAdmin)