Как создать новый экземпляр какой-либо модели при создании другой модели? - PullRequest
0 голосов
/ 20 июня 2019

Я хочу создать экземпляр модели Blog при создании экземпляра модели User и связать новый экземпляр модели Blog с только что созданным экземпляром модели User (и сохранить оба в базе данных) с помощью OneToOneField.

Я хочу всегда создавать новый экземпляр модели блога при создании нового экземпляра модели User и связывать их с OneToOneField.

class User(AbstractUser):
    # some logic to create a new instance of the Blog model 
    # and associating it with a just created instance of the User
    # by the OneToOneField 

class Blog(models.Model):
    author = OneToOneField(User, on_delete=models.CASCADE, primary_key=True)

Как я могу получить это?

Заранее спасибо!

1 Ответ

0 голосов
/ 20 июня 2019

Вы можете использовать сигналы для этого (https://docs.djangoproject.com/en/2.2/ref/signals/). Так что в вашем случае это может выглядеть так:

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

@receiver(post_save, sender=User)
def create_blog(sender, instance, created, **kwargs):
    if created:
        Blog.objects.create(author=instance)
...