Résolue

Foreign key modèle Order

# Orienté objet # Bases de données # Django

Gabriel Trouvé

Mentor

Bonjour,


class Order(models.Model):
    # user peut avoir plusieurs order
    user = models.ForeignKey(AUTH_USER_MODEL, on_delete=models.CASCADE)
    # un seul product par order
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.IntegerField(default=1)
    ordered = models.BooleanField(default=False)

    def __str__(self):
        return f"{self.product.name} - {self.quantity}"


je suis sur le projet e commerce.

Ici product est une foreign key car je peux n'avoir qu'un seul product par Order.


En fait ma question c'est, si j'utilise un one to one field pour product, je ne pourrais pas avoir plusieurs Order avec le même product sur mon site ?


Merci d'avance

Salut Gab !


Effectivement, si tu utilises un OneToOneField pour product, tu ne pourras pas avoir plusieurs Order avec le même product, car chaque produit ne pourra avoir qu'un seul Order associé.


Il est donc préférable d'utiliser une clé étrangère (ForeignKey) dans ce cas. Cela permettra à un produit d'être utilisé dans plusieurs commandes.

Gabriel Trouvé

Mentor

Super merci! j'avais bien compris alors

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.