Показать значение в таблице из модели с шаблоном в django - PullRequest
1 голос
/ 27 мая 2020

Я хочу создать веб-сайт для управления производством хлеба, но у меня две проблемы.

У меня есть образец хлеба (Pain), который позволяет мне создавать хлеб и давать ему стартовую цену. . (nom_pain = name, prix_HT = price)

class Pain(models.Model):
nom_pain = models.CharField(max_length=25,primary_key=True)
prix_HT = models.DecimalField(max_digits=4,decimal_places=2)
pain_decouverte = models.BooleanField(null=False)
def __str__(self):
    return '{}'.format(self.nom_pain)

У меня есть модельная группа (Groupe), которая представляет другую группу клиентов. (nom_groupe = name)

class Groupe(models.Model):
nom_groupe = models.CharField(max_length=30)

def __str__(self):
    return '{}'.format(self.nom_groupe)

I wi sh, чтобы сопоставить цену каждого хлеба группе клиентов на одной странице, а затем отобразить ее в табличной диаграмме (вставив цены на хлеб в поле ячеек)

            | Bread 1 | Bread 2 | Bread 3 |
    Group 1 |  0.5    |  0.6    |         |      
    Group 2 |   1     |         |   0.5   |
    Group 3 |  0.5    |  0.4    |   0.7   |

Моя первая проблема заключается в том, что я не могу сэкономить 2 раза группу / хлеб в моей модели Price (Prix) (я хотел это в форме Group / Bread / Price).

Вторая проблема в том, что я не знаю, как отобразить диаграмму таблицы в моем шаблоне. Я могу отображать только хлеб и группы клиентов.

Есть ли способ сделать это?

Большое спасибо за ваши ответы

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете указать ManyToManyField между Pain и Groupe. Этот ManyToManyField имеет как through=… модель [Django -doc] , модель Prix:

class Groupe(models.Model):
    nom = models.CharField(max_length=30, unique=True)

    def __str__(self):
        return self.name

class Pain(models.Model):
    nom = models.CharField(max_length=25, unique=True)
    pain_decouverte = models.BooleanField()
    groupes = <b>models.ManyToManyField(</b>'client.Groupe', related_name='pains', through='facturation.PainPrix'<b>)</b>

    def __str__(self):
        return self.nom

class PainPrix(models.Model):
    pain = models.<b>ForeignKey(</b>'pain.Pain', related_name='prix', on_delete=models.CASCADE<b>)</b>
    groupe = models.<b>ForeignKey(</b>'client.Groupe', related_name='prix', on_delete=models.CASCADE<b>)</b>
    prix = models.DecimalField(max_digits=4,decimal_places=2)

    class Meta:
        constraints = [
            models.UniqueConstraint(fields=['pain', 'groupe'], name='prix_unique')
        ]
...