Overview
Django models define the structure of your database tables and provide a convenient abstraction to interact with your data. This documentation guides you through the process of defining models in a Django application.
Step 1 : Create a Django App
Ensure you have a Django app set up in your project. If not, create one using :
python manage.py startapp myapp
Step 2 : Define Model Classes
Inside your app's models.py file, define your model classes by subclassing django.db.models.Model. Each class attribute represents a database field.
from django.db import models
class BlogPost(models.Model) :
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
is_published = models.BooleanField(default=False)
def str(self) :
return f"{self.title} - Published: {self.is_published}"
title = models.CharField(max_length=100)
: A CharField for the blog post title with a maximum length of 100 characters.content = models.TextField()
: A TextField for the blog post content, suitable for longer text.pub_date = models.DateTimeField(auto_now_add=True)
: A DateTimeField for the publication date and time. auto_now_add=True
automatically sets the current date and time when the object is created.is_published = models.BooleanField(default=False)
: A BooleanField to indicate whether the blog post is published, with a default value of False.str(self)
: str
method returns a human-readable string representation for the model instance.return f"{self.title} - Published: {self.is_published}"
: It returns a string containing the blog post title and its publication status.
Step 3 : Apply Migrations
Run the following commands to create and apply database migrations :
python manage.py makemigrationspython manage.py migrate
Model Fields
Django provides various field types to represent different types of data, such as CharField, IntegerField, DecimalField, and BooleanField. Field options like max_length, default, max_digits, and decimal_places allow you to customize their behavior.
Model Methods
You can define methods within your model classes for specific behaviors. The str method is commonly used to provide a human-readable string representation of model instances.
Usage
Your models are now ready to be used in your Django project. You can create, retrieve, update, and delete records using the Django ORM.
Feel free to customize your models based on your specific data requirements.