Удалить пользователя, когда профиль и Компания удалили - PullRequest
0 голосов
/ 30 марта 2020

У меня есть следующая модель.

class Profile(models.Model):
  user = models.OneToOneField(User, on_delete=models.CASCADE)
  bedrijf = models.ForeignKey(Bedrijf, on_delete=models.CASCADE)

class Bedrijf(models.Model):
  bedrijfsnaam = models.CharField(max_length=30, null=True, blank=True)

@receiver(post_save, sender=User)  
def create_user_profile(sender, instance, created, **kwargs):
  if created:
    n = Bedrijf.objects.create(bedrijfsnaam="Gaarne_bedrijfsnaam_instellen")
    n.save()
    Profile.objects.create(user=instance, bedrijf=n)

Я хочу удалить пользователя, когда Bedrijf был удален. С этой конфигурацией профиль будет удален, но не Пользователь. Какое решение?

1 Ответ

0 голосов
/ 31 марта 2020

Я решил это с помощью сигнала post_delete, например:

# Delete User after Profile (chained with Bedrijf) has been deleted
@receiver(post_delete, sender=Profile)
def delete_user_after_profile_delete(sender, instance, using, **kwargs):
    instance.user.delete()
...