Develop a Model form for a student that contains the topic chosen for the project, languages used, and duration with a model called project

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

Leave a Reply

Your email address will not be published. Required fields are marked *