Django Rest Framework - создание экземпляра модели при создании нового пользователя. - PullRequest
0 голосов
/ 29 января 2020

Когда создается новый пользователь, я хочу создать «проект» по умолчанию для этого пользователя. Я видел много примеров такого рода действий с «OneToOneField» в модели, но в моем случае мне нужно использовать внешний ключ, потому что у пользователя может быть много «проектов».

модель проекта :

class Project(models.Model):
    projectCode = models.CharField(max_length=10)
    projectName = models.CharField(
        max_length=100)
    user = models.ForeignKey(
        User, related_name="projects", on_delete=models.CASCADE, null=True)
    editor = models.ForeignKey(
        User, on_delete=models.CASCADE, null=True)
    creationDate = models.DateTimeField(auto_now_add=True)
    completedDate = models.DateTimeField(null=True, blank=True)
    dueDate = models.DateTimeField(null=True, blank=True)

    def __str__(self):
        return f"{self.projectName}"

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

    @receiver(post_save, sender=User)
    def save_project(sender, instance, **kwargs):
        instance.project.save()

Когда я пытаюсь зарегистрировать нового пользователя, пользователь успешно создан, но я получаю следующую ошибку:

AttributeError: 'User' object has no attribute 'project'

Как я могу создать проект при создании пользователя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...