0
0
Djangoframework~30 mins

Signal dispatch process in Django - Mini Project: Build & Apply

Choose your learning style9 modes available
Signal dispatch process
📖 Scenario: You are building a Django app that needs to perform an action automatically when a new user is created.We will use Django signals to detect when a user is saved and then run custom code.
🎯 Goal: Create a Django signal handler that listens for the post_save signal on the User model and prints a message when a new user is created.
📋 What You'll Learn
Import the post_save signal from django.db.models.signals
Import the User model from django.contrib.auth.models
Define a function called welcome_new_user that accepts sender, instance, created, and **kwargs parameters
Connect the welcome_new_user function to the post_save signal for the User model
Inside the signal handler, check if created is True and then print "Welcome, {username}!" where {username} is the username of the new user
💡 Why This Matters
🌍 Real World
Automatically perform actions like sending welcome messages or updating related data when database changes happen.
💼 Career
Understanding Django signals is important for backend developers to write clean, decoupled code that reacts to model events.
Progress0 / 4 steps
1
Import necessary modules and models
Import post_save from django.db.models.signals and import User from django.contrib.auth.models.
Django
Need a hint?

Use from django.db.models.signals import post_save and from django.contrib.auth.models import User.

2
Define the signal handler function
Define a function called welcome_new_user that accepts parameters sender, instance, created, and **kwargs.
Django
Need a hint?

Define the function with the exact name and parameters.

3
Add logic to check if a new user was created
Inside the welcome_new_user function, add an if statement to check if created is True. If so, print "Welcome, {instance.username}!" using an f-string.
Django
Need a hint?

Use if created: and inside it use print(f"Welcome, {instance.username}!").

4
Connect the signal handler to the post_save signal
Connect the welcome_new_user function to the post_save signal for the User model using post_save.connect(welcome_new_user, sender=User).
Django
Need a hint?

Use post_save.connect(welcome_new_user, sender=User) to connect the signal.