0

Je souhaite créer un système de tickets simple. J'ai 3 tables: Ticket, Responsable et Services .J'ai aussi les vues que créer, mettre à jour et supprimer des données à tous les 3 tables. ce que j'ai des problèmes crée une vue qui crée le billet principal.Django: comment créer un enregistrement contenant un ou plusieurs éléments d'une table db différente

Mes 3 tables sont Ticket, Services et Responsable. mon billet ne peut avoir qu'une seule personne responsable et mon billet doit avoir un ou plusieurs services.

Je suis perdu sur la façon de sélectionner plusieurs services à un ticket mes modèles ressemble à ceci:

from django.db import models 
from django.core.urlresolvers import reverse 

# Create your models here. 
class Servicios(models.Model): 
    servicio = models.CharField(max_length=250) 
    precio = models.FloatField() 


class Doctor(models.Model): 
    nombre = models.CharField(max_length=250) 
    porcentaje = models.FloatField() 

class Ticket(models.Model): 
    fecha = models.DateTimeField(auto_now_add=True) 
    servicio = models.ForeignKey(Servicios) 
    doctor = models.ForeignKey(Doctor) 
    cantidad = models.IntegerField() 
    p_unitario = models.FloatField() 
    total = models.FloatField() 


    def get_absolute_url(self): 
     return reverse('Main:get-list') 

Répondre

0

Ce serait la bonne façon:

class Servicios(models.Model): 
    servicio = models.CharField(max_length=250) 
    precio = models.FloatField() 
    ticket = models.ForeignKey(Ticket) 

class Doctor(models.Model): 
    nombre = models.CharField(max_length=250) 
    porcentaje = models.FloatField() 

class Ticket(models.Model): 
    fecha = models.DateTimeField(auto_now_add=True) 
    doctor = models.ForeignKey(Doctor) 
    cantidad = models.IntegerField() 
    p_unitario = models.FloatField() 
    total = models.FloatField() 

Ici, un service peut avoir un ticket et un ticket peuvent avoir plusieurs services, une autre option serait manytomany.

0

Utilisez la relation manytomany pour Servicios et ForeignKey ou onetoone pour Doctor dans Ticket. En utilisant manytomany, vous pouvez référencer autant de valeurs Servicios que nécessaire.