добавление продуктов и количества к счету в django - PullRequest
1 голос
/ 28 января 2020

Прежде всего, я очень плохо знаком с Django и Python, и я изо всех сил пытаюсь сделать ОЧЕНЬ простой счет для работы. У меня 3 класса; Поставщик , Продукт и Счет . Продукт и поставщик работают отлично, я могу заполнить их, и они сохраняются в базе данных. Теперь мне нужно заполнить счет-фактуру, выбрать поставщика, продукты (один или несколько) и указать количество для каждого продукта. , Кажется, я не могу понять, как это сделать: добавить количество к каждому выбранному продукту (я понятия не имею, как это сделать) и вычислить итоговое значение (я знаю, что я должен умножить цены и количества, а затем суммировать их но я не знаю, где это сделать и как сохранить). Я попытался добавить класс LineItem , но не смог заставить его работать.

Я использую Python 3.7 и Django 3.0

Я отправляю код, который я написал до сих пор. (на всякий случай: Proveedor = поставщик, продукт = продукт, фактура = счет-фактура, cantidad = количество, стоимость = цена)

Заранее спасибо!

models.py


class Proveedor(models.Model):
    apellido = models.CharField(max_length=200, null=True)
    nombre = models.CharField(max_length=200, null=True)
    cuit = models.CharField(max_length=13, null=True)
    teléfono = models.CharField(max_length=200, null=True)
    dirección = models.CharField(max_length=200, null=True)

    def __str__(self):
            return '{} {}'.format(self.nombre, self.apellido)

class Producto(models.Model):
    UNIDAD_DE_MEDIDA = (
            ('Litro', 'Litro'),
            ('Kilo', 'Kilo'),
            ('Gramo', 'Gramo'),
            ('Cm3', 'Cm3'),
            ('Unidad', 'Unidad'),
            )
    nombre = models.CharField(max_length=200, null=True)
    presentación = models.CharField(max_length=200, null=True)
    unidad_de_medida = models.CharField(max_length=200, null=True, choices=UNIDAD_DE_MEDIDA)
    precio_unitario = models.FloatField(null=True)

    def __str__(self):
            return '{} {}'.format(self.nombre, self.presentación)

class Factura(models.Model):
    ESTADO = (
            ('Paga', 'Paga'),
            ('No Paga', 'No Paga'),
            )

    numero = models.IntegerField(null=True)
    producto = models.ManyToManyField(Producto)
    cantidad = models.IntegerField(max_length=200, null=True)
    proveedor = models.ForeignKey(Proveedor, null=True, on_delete= models.SET_NULL)
    fecha = models.DateTimeField(auto_now_add=True, null=True)
    estado = models.CharField(max_length=200, null=True, choices=ESTADO)

    def __str__(self):
            return '{} {} {}'.format(self.fecha, self.numero, self.proveedor)
...