Когда создается новый пользователь, я хочу создать «проект» по умолчанию для этого пользователя. Я видел много примеров такого рода действий с «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'
Как я могу создать проект при создании пользователя?