How to Get Month from Datetime field in Django?

Published On: 10/09/2022 | Category: Django

Hi Dev,

In this quick example, let's see how to get month from datetime field in django. we will help you to give example of how to get month name from datetime field in django. step by step explain How to extract month from datetime field in django. I would like to share with you how to get month from datetime in django.

For in this example, let's talk about we're running a site where a user can post content on the site. We may not want to put the entire datetimefield object, where it has the month, We may just want to put the day.

So, let's say, for example, we just want to extract the day name from the DateTimeField.

let's see bellow example here you will learn how to get month from datetime field in django.

Django Admin Interface:

Step 1: Creating the Model

In this step we will require the database model for storing article details in article table.Open the file and add the following code:
from django.db import models
from django.contrib.auth.models import User
from django.template.defaultfilters import slugify

class Article(models.Model):
    title= models.CharField(max_length=300)
    url= models.SlugField(max_length=300)
    content= models.TextField()
    pub_date = models.DateTimeField(auto_now_add= True)
    author= models.ForeignKey(User,on_delete=models.CASCADE)

    def save(self, *args, **kwargs):
        self.url= slugify(self.title)
        super(Article, self).save(*args, **kwargs)

    def __str__(self):
        return self.title

    #Get Day Name
    def getmonthname(self):
        return self.pub_date.strftime('%B')
Step 2: Creating the Views

In this step, we need to configure our views. The detail_post_view page will just be a template, open the file and add:
from django.shortcuts import render, get_object_or_404,redirect
from .forms import *
from .models import *

def detail_post_view(request, id=None):
    postobj= Article.objects.all()
    context={'postobj': postobj}
    return render (request, 'detail.html', context)
Step 3: Creating the Template

Next, open the detail.html file and the add:

<!DOCTYPE html>
<html lang="en">
    <meta charset="UTF-8">
    <link rel="stylesheet" href="[email protected]/dist/css/bootstrap.min.css">
    <div class="container mt-5 pt-5">
        <div class="row d-flex justify-content-center">
            <div class="col-md-9">
                <div class="card">
                    <div class="card-header">
                        <h4>How to Get Month from Datetime field in Django? - <span class="text-primary"></span></h4>
                    <div class="card-body">
                        <table class="table table-bordered">
                                    <th>Publish Day</th>
                                {% for post in postobj %}
                                    <td>{{ post.title }}</td>
                                    <td class="text-primary">{{ post.getmonthname }}</td>
                                {% endfor %}

I Hope It will help you....

Happy Coding!