Django : système de tickets SAV
Salut Thibault !
Je vais attaquer le système de ticket/sav. Je viens de terminer le système de recommandations.
Par exemple sur docstring pour les questions : Tu as un modèle "Question", et un modèle "Message" ?
Je pensais faire un modèle Ticket pour l'app. Et un modèle Message. Les messages seraient rattachés à un unique ticket.
class Ticket(models.Model):
messages = models.ManytoMany #vers messages
# ou
class Message(models.Model):
ticket = ForeignKey # vers Ticket
Souvent j'ai du mal avec ça. Est-ce que les messages je les rattache au ticket dans un manytomany qui est dans Ticket ?
ou par une ForeignKey directement dans Message ?
Je ne sais pas pk j'ai souvent du mal à décider dans quel "sens" gérer ça. Perso je partirai sur un ManotoMany dans ticket
Merci d'avance !
Salut Gab :)
T'inquiète pas, c'est normal de se sentir un peu perdu avec ça, les relations entre modèles sont pas toujours évidentes à déterminer. J'avais ces mêmes difficultés au début, sachant aussi que comme bien souvent, tu peux faire les choses de différentes façons.
Donc, pour revenir à ta question : tu veux que chaque ticket puisse avoir plusieurs messages, mais chaque message doit être lié à un seul ticket, c'est ça ?
Si c'est le cas, je te conseille d'utiliser une relation ForeignKey dans le modèle Message. Cela signifie qu'un message appartient à un seul ticket, tandis qu'un ticket peut avoir plusieurs messages.
Alors, ton modèle de Message ressemblerait à ça :
class Message(models.Model):
ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE)
La logique ici, c'est que tu crées un ticket d'abord, puis tu peux attacher plusieurs messages à ce ticket.
Et le on_delete=models.CASCADE signifie que si le ticket associé est supprimé, tous les messages qui lui sont liés le seront également.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte