Django

New Features in Django 5.0: What's New and Exciting in Django Framework

Introduced in Django 5, this feature allows you to
use underlaying database functions to generate default values.

Using Database-Generated Default Values in Django

from django.db import models
from django.db.models.functions import Now
class Post(models.Model):
# ...
publish = models.DateTimeField(db_default=Now())

 

To set database-generated default values for a model field, Django provides the db_default attribute instead of the regular default attribute. The db_default allows you to use database functions to generate the default value, rather than relying on Python code.

For example, you can use the Now database function to automatically set a field's value to the current date and time. This serves a similar purpose to default=timezone.now, but instead of relying on Python-generated datetimes, it uses the NOW() function provided by the database itself to generate the initial value.

For more information on using the db_default attribute, you can refer to the  https://docs.djangoproject.com/en/5.0/ref/models/fi elds/#django.db.models.Field.db_default. Additionally, you can find a list of all available database functions in the  https://docs.djangoproject.com/en/5.0/ref/models/da tabase-functions/.

 


About author

author image

Amrit panta

Fullstack developer, content creator



Scroll to Top