Partage
  • Partager sur Facebook
  • Partager sur Twitter

j'ai un problème avec models.CASCADE - cours djang

erreur required positional argument: 'on_delete'

    12 septembre 2020 à 11:39:05

    Bonjour, je suis actuellement le cours sur django et j'en suis aux modèles et plus précisément à la migrations des modèles vers la base de donné, j'aurai besoin de votre aide svp parce que  j'ai une erreur que je n'arrive pas à gérer lorsque que je fais la commande makemigrations : TypeError: __init__() missing 1 required positional argument: 'on_delete'.

    je vous met mon ficheir models.py ci dessous: 

    from django.db import models, migrations
    
    
    class Artist(models.Model):
        name = models.CharField(max_length=200, unique=True)
    
    
    class Contact(models.Model):
        email = models.EmailField(max_length=100)
        name = models.CharField(max_length=200)
    
    
    class  Album(models.Model):
        referance = models.IntegerField(null=True)
        created_at = models.DateTimeField(auto_now_add=True)
        available = models.BooleanField(default=True)
        title = models.CharField(max_length=200)
        picture = models.URLField()
        artists = models.ManyToManyField(Artist, related_name='albums', blank=True)
    
    class Booking(models.Model):
    
        created_at = models.DateTimeField(auto_now_add=True)
        contacted = models.BooleanField(default=False)
        contact = models.ForeignKey(Contact, on_delete=models.CASCADE)
        album = models.OneToOneField(Album)



    merci d'avance pour vos réponses ! :)

    • Partager sur Facebook
    • Partager sur Twitter
      12 septembre 2020 à 20:38:07

      Après la version 1.x de Django, le paramètre on_delete est obligatoirement renseigné sur les ForeignKey comme sur les OneToOneField

      Un paramètre positionnel est obligatoire : la classe à laquelle le modèle est lié. Ceci fonctionne exactement de la même manière que pour ForeignKey, y compris toutes les options concernant les relations récursives et différées.

       Ci-dessus ce que dit la doc et le point important en gras.

      • Partager sur Facebook
      • Partager sur Twitter

      Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
      La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

      j'ai un problème avec models.CASCADE - cours djang

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown