FSD Lab Component-3
FSD Lab Component-3
1. For student and course models created in Lab experiment for Module2, register admin interfaces,
perform migrations and illustrate data entry through admin forms.
models.py
from django.db import models
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)
def __str__(self):
return self.student_name+"("+self.student_usn+")"
admin.py
class StudentAdmin(admin.ModelAdmin):
list_display = ('student_name','student_usn','student_sem')
ordering=('student_name',)
search_fields = ('student_name',)
admin.site.register(Student, StudentAdmin)
Output :
2. Develop a Model form for student that contains his topic chosen for project, languages used and
duration with a model called project.
models.py
from django.db import models
from django.forms import ModelForm
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)
def __str__(self):
return self.student_name+"("+self.student_usn+")"
class Project(models.Model):
student=models.ForeignKey(Student,on_delete=models.CASCADE)
ptopic=models.CharField(max_length=200)
plangauges=models.CharField(max_length=200)
pduration=models.IntegerField()
class ProjectReg(ModelForm):
required_css_class="required"
class Meta:
model=Project
fields=['student','ptopic','plangauges','pduration']
views.py
from django.shortcuts import render
else:
return HttpResponse("<h1>Record not inserted</h1>")
else:
form=ProjectReg()
return render(request,"add_project.html",{"form":form})
add_project.html
<html>
<form method="post" action="">
{% csrf_token %}
<table>
{{ form.as_table}}
<tr>
<td>
<input type="submit" value="Submit">
</td>
</tr>
</table>
</form>
</html>
urls.py
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
path('add_project/', add_project),
]
Output