Как вызвать функцию при создании пользователя с помощью django?

Я новичок в django и хотел бы узнать, возможно ли запустить функцию после создания пользователя? Для создания пользователя я использую административный интерфейс django.

Я хочу назначить пользователю тему по умолчанию, и для этого у меня есть следующий класс в моем файле models.py

class Profile(models.Model):
user = models.OneToOneField(User, null=False, on_delete=models.CASCADE)
selected_theme = models.TextField(max_length=50, default="Clair")

Этот класс позволяет мне хранить тему, выбранную пользователем. Я хотел бы использовать функцию, которая назначает тему пользователю при его создании.

Для этого вам нужно добавить следующие строки в файл model.py в вашем профильном классе:

from django.db.models.signals import post_save
from django.dispatch import receiver

class Profile(models.Model):
user = models.OneToOneField(User, null=False, on_delete=models.CASCADE)
selected_theme = models.TextField(max_length=50, default="Clair")

@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
    instance.profile.save()
Вернуться на верх