Django

College Event Registration Website

CampusConnect Introduction and Setup Configuring settings file for template, static and media files Setting up Tailwind Creating Custom User Model Creating Super User for CampusConnect Registering Custom User Model Search and Filter for User Model Serving Media Files During Development Categorizing Departments Linking Department with HOD Creating Abstract Model for Event Creating Model for Workshop Customizing Admin Page for Workshop Update in Model AbstractEvent Adding Instructor for Workshop Instructor Model Admin Page Adding Poster Field in Abstract Event Providing Access to HOD Access Update for HOD Restricting HOD Access to Particular Department AbstractEvent On Spot Registration Field Creating Workshop Object Creating and Linking Home Page Displaying Workshop on Home Page Styling Home Page Adding Workshop Detail Page Link Workshop Detail Page Workshop Detail Page Styling Workshop Instructor Details Workshop Detail Contact Contact Admin Page Many to Many Field for Contact Displaying Contact on Workshop Detail Page Adding Title for Workshop Detail Page Adding Gallery for Workshop Workshop Gallery Admin Page Displaying Gallery Images on Website Through Context Displaying Gallery Images on Website through template tags Authentication for users User Registration User Registration Submission Logout Functionality For User Login Functionality for User Model For Workshop Registration Workshop Registration Admin Page Register Workshop Function Register Button in Workshop Page Validations Before Workshop Registration Workshop Registration Closed Validaiton User Already Registered for Workshop Validation Workshop Registration Report From Admin Page Export using Library in Django Admin Extending Abstract Event for Hackathons

Displaying Workshop on Home Page

To display the upcoming workshops that are there, you need to pass it along the render function. This can be done as follows :

from django.shortcuts import render
from django.utils import timezone
from .models import Workshop

# Create your views here.
def home(request):
    upcoming_workshops = Workshop.objects.filter(start_date__gte=timezone.now()).order_by('start_date')[:5]

    context = {
        'upcoming_workshops': upcoming_workshops,
    }
    return render(request, 'event/home.html', context)

This will take the upcoming_workshops from the database and pass it to the template file.

Now inside the template file, the data can be displayed using a for loop :

{% extends 'base.html' %}

{% block title %}
Campus Connect
{% endblock %}

{% block content %}

    <h2 class="text-2xl font-semibold mb-4">Upcoming Workshops</h2>

    {% for workshop in workshops %}
        <div class="bg-gray-700 p-6 mb-6 rounded-lg">
            <h3 class="text-xl font-semibold">{{ workshop.name }}</h3>
            <p class="text-gray-400">{{ workshop.description }}</p>
            <p class="text-gray-400">Date: {{ workshop.start_date }} - {{ workshop.end_date }}</p>
            <p class="text-gray-400">Venue: {{ workshop.venue }}</p>
        </div>

        {% empty %}
            <p class="text-gray-400">No upcoming workshops at the moment.</p>
    {% endfor %}

{% endblock %}

With this, all the upcoming workshops would be visible in the home page.

Now we shall the run the server and while the changes were being implemented the python manage.py tailwind start command should be running to parallel to build the css changes. alt text Now, the added workshop is being visible in the home page itself. If no workshops are upcoming, it will show no workshops available.

In the next sections, you will see how you can display a detailed view of a particular workshop.