如何通过django中的模型在manytomany中插入数据表单

时间:2013-07-10 12:18:27

标签: django django-models django-forms django-orm

我正在实施一个简单的平台销售,此平台的一部分引用插入已设置的许多订单,此订单(Pedido)与order_detail(Detalle_Pedido)和这个产品(Producto)是这样的:

    class Pedido(models.Model):
        referencia = models.CharField(max_length=255)
        cliente = models.ForeignKey(Cliente,related_name="cliente")
        fecha_pedido = models.DateField(auto_now=True)
        fecha_entrega = models.DateField(auto_now=True)
        agencia_envio = models.ForeignKey(Envio, related_name="entrega",blank=True,null=True)
        producto = models.ManyToManyField(Producto, through='Detalle_Pedido')

        def __unicode__(self):
                return self.referencia

        class Meta:
            ordering = ["referencia","fecha_pedido"]



    class Detalle_Pedido(models.Model):
        pedido = models.ForeignKey(Pedido, related_name="pedido")
        producto = models.ForeignKey(Producto, related_name="producto")
        unidad_precio = models.FloatField()
        cantidad = models.IntegerField()
        descuento = models.FloatField(blank=True)

        def __unicode__(self):
                return self.producto

        class Meta:
            ordering = ["producto"]



     class Producto(models.Model):
        referencia = models.CharField(max_length=30)
        nombre = models.CharField(max_length=500)
        cantidad = models.IntegerField()
        precio_unidad = models.FloatField(blank=True)
        cantidad_en_pedido = models.IntegerField(blank=True)
        descatalogado = models.BooleanField(blank=True)
        proveedor = models.ForeignKey(Proveedor,related_name="proveedor",blank=True,null=True)
        categoria = models.ForeignKey(Categoria,related_name="categoria",blank=True,null=True)
        imagen = models.ImageField(upload_to="/media/productos", blank=True)

        def __unicode__(self):
                return self.nombre

        class Meta:
            ordering = ["nombre","cantidad","precio_unidad","cantidad_en_pedido","descatalogado"]

每次创建Pedido中的订单时,通过Detalle_Pedido,我必须将每个订单明细与新创建的订单相关联,并在创建每个订单明细时与Producto用户相关联可以设置订单明细的产品和数量,我使用的是CreateView,我知道这可能与formsets有关,但我看到的例子并没有说明使用的事实ManyToManyFields通过模型,在本例中为Detalle_Pedido

修改

我澄清了一些问题,以便更多地理解,首先Detalle_Pedido,是的,是订单的项目部分,这就是为什么我定义一个定位到Pedido的外键(订单) ,订单包含多个商品,Detalle_Pedido(订单明细)还有另一个定位到Producto(产品)的外键,用于检索产品详细信息,来自Pedido我做了ManyToManyFieldProducto,因为一个订单有一些产品,为此,我设置了through条款,说我想存储一些与订单和产品相关的数据,这就是订单明细(Detalle_Pedido ),我不知道这是否是更“合法”的方式,但对我正在尝试做的事情来说是一个小方法,我在Django中相对较新,所以我想念很多东西,任何建议或提示都会更感激。

0 个答案:

没有答案