Set Default Value in Model Field
A snippet showing how to define default values for Django model fields.
# models.py
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
price = models.DecimalField(max_digits=8, decimal_places=2, default=0.00)
in_stock = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f"{self.name} - ${self.price}"
# Django Shell
>>> from shop.models import Product
>>> product = Product.objects.create(name='Laptop')
>>> product.price
Decimal('0.00')
>>> product.in_stock
True
# Using functions for defaults
import uuid
from django.db import models
def generate_sku():
return str(uuid.uuid4())[:8]
class Item(models.Model):
name = models.CharField(max_length=100)
sku = models.CharField(max_length=20, default=generate_sku)
Explanation:
-
The
defaultargument sets a value automatically when a field is not provided. -
Defaults can be constants (like
Trueor0.00) or callable functions. - Using functions for defaults ensures unique values (like SKUs or UUIDs) for each object.
-
auto_now_addis useful for timestamp defaults, setting the date when the record is created.
- Category Models & ORM
- Total Views 664
- Last Modified 16 September, 2025
- Tags #models #fields #defaults #orm
Previous snippet
Add Choices to a Model Field
Next snippet