Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • Build your AI Agent
    • GfG 160
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • Contests
    • Accenture Hackathon (Ending Soon!)
    • GfG Weekly [Rated Contest]
    • Job-A-Thon Hiring Challenge
    • All Contests and Events
  • Django
  • Views
  • Model
  • Template
  • Forms
  • Jinja
  • Python SQLite
  • Flask
  • Json
  • Postman
  • Interview Ques
  • MongoDB
  • Python MongoDB
  • Python Database
  • ReactJS
  • Vue.js
Open In App
Next Article:
Django Basic App Model - Makemigrations and Migrate
Next article icon

Django ORM – Inserting, Updating & Deleting Data

Last Updated : 12 Sep, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Django lets us interact with its database models, i.e. add, delete, modify, and query objects, using a database-abstraction API called ORM(Object Relational Mapper). This article discusses all the functional operations we can perform using Django ORM.

Prerequisite: Django models

Django ORM

Django’s Object-Relational Mapping (ORM) system, a fundamental component that bridges the gap between the database and the application’s code. This article delves into the intricate realm of Python, Django, and their ORM, uncovering how this technology stack simplifies database interactions and accelerates the development process. For demonstration purposes, we will use the following Django models.

Python3




class Album(models.Model):
    title = models.CharField(max_length = 30)
    artist = models.CharField(max_length = 30)
    genre = models.CharField(max_length = 30)
  
    def __str__(self):
        return self.title
  
class Song(models.Model):
    name = models.CharField(max_length = 100)
    album = models.ForeignKey(Album, on_delete = models.CASCADE)
  
    def __str__(self):
        return self.name
 
 

Django Shell

We can access the Django ORM by running the following command inside our project directory.

python manage.py shell  

This brings us to an interactive Python console. Assuming that our models exist in

myProject/albums/models.py

we can import our models using the following command:

>>> from books.models import Song, Album  

Django ORM Queries

Insert Data with Django ORM

To create an object of model Album and save it into the database, we need to write the following command:

>>> a = Album(title = "Divide", artist = "Ed Sheeran", genre = "Pop")  >>> a.save()  

To create an object of model Song and save it into the database, we need to write the following command:

>>> s = Song(name = "Castle on the Hill", album = a)  >>> s.save()  

Creating Data with Django ORM

Let us add 2 more Albums records for the sake of demonstration.

>>> a = Album(title = "Abbey Road", artist = "The Beatles", genre = "Rock")  >>> a.save()  >>> a = Album(title = "Revolver", artist = "The Beatles", genre = "Rock")  >>> a.save()  

Retrieving Data with Django ORM

To retrieve all the objects of a model, we write the following command:

>>> Album.objects.all()  <QuerySet [<Album: Divide>, <Album: Abbey Road>, <Album: Revolver>]>  

The output is a QuerySet, or a set of objects that match the query. Notice that the name printed is the output of the __str__() function. We can also filter queries using the functions filter(), exclude() and get(). The filter() function returns a QuerySet having objects that match the given lookup parameters.

>>> Album.objects.filter(artist = "The Beatles")  <QuerySet [<Album: Abbey Road>, <Album: Revolver>]>  

The exclude() function returns a QuerySet having objects other than those matching the given lookup parameters.

>>> Album.objects.exclude(genre = "Rock")  <QuerySet [<Album: Divide>]>  

The get() function returns a single object which matches the given lookup parameter. It gives an error when the query returns multiple objects.

>>> Album.objects.get(pk = 3)  <QuerySet [<Album: Revolver>]>  

Update Data with Django ORM

We can modify an existing object as follows:

>>> a = Album.objects.get(pk = 3)  >>> a.genre = "Pop"  >>> a.save()  

Deleting Data with Django ORM

To delete a single object, we need to write the following commands:

>>> a = Album.objects.get(pk = 2)  >>> a.delete()  >>> Album.objects.all()  <QuerySet [<Album: Divide>, <Album: Revolver>]>  

To delete multiple objects, we can use filter() or exclude() functions as follows:

>>> Album.objects.filter(genre = "Pop").delete()  >>> Album.objects.all()  <QuerySet []>    


Next Article
Django Basic App Model - Makemigrations and Migrate

A

Abhishek De
Improve
Article Tags :
  • DBMS
  • Python
  • Web Technologies
  • Django-basics
  • Python Django
Practice Tags :
  • python

Similar Reads

  • Django Models
    A Django model is the built-in feature that Django uses to create tables, their fields, and various constraints. In short, Django Models is the SQL Database one uses with Django. SQL (Structured Query Language) is complex and involves a lot of different queries for creating, deleting, updating, or a
    10 min read
  • Django ORM - Inserting, Updating & Deleting Data
    Django lets us interact with its database models, i.e. add, delete, modify, and query objects, using a database-abstraction API called ORM(Object Relational Mapper). This article discusses all the functional operations we can perform using Django ORM. Prerequisite: Django models Django ORM Django's
    3 min read
  • Django Basic App Model - Makemigrations and Migrate
    In this article, we will create a basic model of an app and also learn about what are migrations in Django and migrate in Django also develop some basic understanding related to them in Python. Makemigrations and Migrations in DjangoMakemigrations and migrate are commands that are used to interact w
    5 min read
  • Add the slug field inside Django Model
    The slug field within Django models is a pivotal step for improving the structure and readability of URLs in web applications. This addition allows developers to automatically generate URL-friendly slugs based on titles, enhancing user experience and search engine optimization (SEO). By implementing
    4 min read
  • Intermediate fields in Django | Python
    Prerequisite: Django models, Relational fields in DjangoIn Django, a many-to-many relationship exists between two models A and B, when one instance of A is related to multiple instances of B, and vice versa. For example - In a shop management system, an Item and a Customer share a many-to-many relat
    2 min read
  • Python | Uploading images in Django
    In most websites, we often deal with media data such as images, files, etc. In Django, we can deal with the images with the help of the model field which is ImageField. In this article, we have created the app image_app in a sample project named image_upload. The very first step is to add the below
    5 min read
  • Change Object Display Name using __str__ function - Django Models | Python
    How to Change Display Name of an Object in Django admin interface? Whenever an instance of model is created in Django, it displays the object as ModelName Object(1). This article will explore how to make changes to your Django model using def __str__(self) to change the display name in the model. Ob
    2 min read
  • Custom Field Validations in Django Models
    This article revolves around how to add custom validation to a particular field. For example to add validation of an email to a CharField by specifying a particular format. There can be multiple ways on how to achieve custom validation. In this article, we are going to show it from the model itself
    3 min read
  • Meta Class in Models - Django
    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source. D
    3 min read
  • How to use Django Field Choices ?
    Django Field Choices. According to documentation Field Choices are a sequence consisting itself of iterables of exactly two items (e.g. [(A, B), (A, B) ...]) to use as choices for some field. For example, consider a field semester which can have options as { 1, 2, 3, 4, 5, 6 } only. Choices limits t
    2 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences