私は単純なプラットフォーム販売を実装しています。このプラットフォームの 1 つのセクションは、設定されている多くの注文を挿入するために参照しています。この注文 ( 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
製品の詳細を取得するために (製品) を対象とする外部キー。to を実行しPedido
たのはManyToManyField
、 1 つの注文にいくつかの製品があるためです。そのために、注文と製品に関連するデータを保存したいというProducto
節を設定しました。それが注文です。through
詳細(Detalle_Pedido
)、それがより「正当な」方法であるかどうかはわかりませんが、私がやろうとしていることの小さなアプローチです。私はDjangoで比較的新しいので、多くのこと、アドバイス、またはヒントをいただければ幸いです。