Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Creating Models in Django

Introduction

In Django, models are used to define the structure of your database. A model is a Python class that subclasses django.db.models.Model. Each attribute of the model represents a database field. In this tutorial, we will learn how to create models from scratch.

Setting Up Your Django Project

Before we start creating models, ensure you have a Django project set up. If you don't have one, you can create it using the following commands:

django-admin startproject myproject

Navigate to the project directory:

cd myproject

Create a new app within the project:

python manage.py startapp myapp

Creating Your First Model

Let's create a simple model to represent a blog post. Open the models.py file in your app (e.g., myapp/models.py) and define your model:

from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

In this example, we have created a BlogPost model with the following fields:

  • title: A CharField to store the title of the blog post.
  • content: A TextField to store the content of the blog post.
  • created_at: A DateTimeField that automatically sets the current date and time when a new record is created.
  • updated_at: A DateTimeField that automatically updates the current date and time whenever the record is updated.

Running Migrations

After defining your models, you need to create the necessary database tables. This is done through migrations. Run the following commands to create and apply migrations:

python manage.py makemigrations

python manage.py migrate

The makemigrations command will generate a migration file based on the changes you've made to your models. The migrate command will apply those changes to the database.

Using the Django Admin Interface

Django comes with a built-in admin interface that allows you to manage your models. To use it, you need to register your model in the admin. Open the admin.py file in your app (e.g., myapp/admin.py) and register your model:

from django.contrib import admin
from .models import BlogPost

admin.site.register(BlogPost)

Now, run the development server:

python manage.py runserver

Navigate to http://127.0.0.1:8000/admin/ and log in using the superuser credentials. You should see the BlogPost model listed in the admin interface, allowing you to add, edit, and delete blog posts.

Conclusion

In this tutorial, we have covered the basics of creating models in Django. We learned how to define models, run migrations, and use the Django admin interface to manage our models. With this knowledge, you can start building more complex models for your Django applications.