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