0% found this document useful (0 votes)
13 views

Program 3

Uploaded by

Srihari Murali
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

Program 3

Uploaded by

Srihari Murali
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 4

# models.

py

from django.db import models

class Student(models.Model):

name = models.CharField(max_length=100)

email = models.EmailField(unique=True)

def __str__(self):

return self.name

class Course(models.Model):

title = models.CharField(max_length=200)

students = models.ManyToManyField(Student, related_name='courses')

def __str__(self):

return self.title

create templte folder html files

<!-- register_student.html -->

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Register Student</title>

</head>

<body>

<h2>Register Student</h2>

<form method="post">
{% csrf_token %}

<label for="name">Name:</label><br>

<input type="text" id="name" name="name"><br>

<label for="email">Email:</label><br>

<input type="email" id="email" name="email"><br>

<label for="course">Select Course:</label><br>

<select id="course" name="course">

{% for course in courses %}

<option value="{{ course.id }}">{{ course.title }}</option>

{% endfor %}

</select><br>

<input type="submit" value="Register">

</form>

</body>

</html>

<!-- registered_students.html -->

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Registered Students</title>

</head>

<body>

<h2>Registered Students for {{ course.title }}</h2>

<ul>

{% for student in students %}

<li>{{ student.name }} - {{ student.email }}</li>

{% empty %}

<li>No students registered for this course yet.</li>

{% endfor %}
</ul>

</body>

</html>

In the app views.py

# views.py

from django.shortcuts import render, redirect

from .models import Student, Course

def register_student(request):

if request.method == 'POST':

student_name = request.POST['name']

student_email = request.POST['email']

course_id = request.POST['course']

course = Course.objects.get(pk=course_id)

student, created = Student.objects.get_or_create(name=student_name, email=student_email)

course.students.add(student)

return redirect('registered_students', course_id=course_id)

else:

courses = Course.objects.all()

return render(request, 'register_student.html', {'courses': courses})

def registered_students(request, course_id):

course = Course.objects.get(pk=course_id)

students = course.students.all()

return render(request, 'registered_students.html', {'course': course, 'students': students})

#in the app urls.py

from django.urls import path


from . import views

urlpatterns = [

path('register/', views.register_student, name='register_student'),

path('registered_students/<int:course_id>/', views.registered_students,
name='registered_students'),

In the project ->urls.py

from django.contrib import admin


from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('',include('data.urls')),
]

You might also like