Develop a Model form for a student that contains the topic chosen for the project, languages used, and duration with a model called project
Program:-
models.py:-
from django.db import models
from django.forms import ModelForm
class Meeting(models.Model):
meeting_code = models.CharField(max_length=108)
meeting_dt = models.DateField(auto_now_add=True)
meeting_subject = models.CharField(max_length=100)
meeting_np = models.IntegerField()
class Course(models.Model):
course_code = models.CharField(max_length=40)
course_name = models.CharField(max_length=100)
course_credits = models.IntegerField(blank=True, null=True)
def __str__(self):
return self.course_name
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)
planguages = models.CharField(max_length=200) # corrected field name to planguages
pduration = models.IntegerField()
class ProjectReg(ModelForm):
required_css_class = "required"
class Meta:
model = Project
fields = ['student', 'ptopic', 'planguages', 'pduration']views.py:-
from django.http import HttpResponse
from django.shortcuts import render
from ap3.models import Course, Meeting, ProjectReg, Student
def add_project(request):
if request.method == "POST":
form = ProjectReg(request.POST)
if form.is_valid():
form.save()
return HttpResponse("<h1>Record inserted successfully</h1>")
else:
form = ProjectReg()
return render(request, "add_project.html", {"form": form})templates/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
from ap3.views import add_project
urlpatterns = [
path("admin/", admin.site.urls),
path("add_project/", add_project),
# Add other URL patterns here
]Perform remigrations before running:
python manage.py makemigrations ap3 python manage.py migrate
