J'ai une classe du type:
class Synergy(BaseModel):
[../..]
compounds = models.ManyToManyField(EssentialOil, through='SynergyCompound')
[../..]
Qui pour une relation ManyToMany vers la classe "EssentialOil" mais avec des attributs propre à cette relation. J'ai donc créé une table intermediaire:
class SynergyCompound(BaseModel):
essential_oil = models.ForeignKey(EssentialOil, on_delete=models.CASCADE, default=None)
synergy = models.ForeignKey(Synergy, on_delete=models.CASCADE)
quantity = models.DecimalField(verbose_name=_('quantity'), decimal_places=2, max_digits=4, default=None, null=False,
blank=False, validators=[MinValueValidator(Decimal('0.01'))])
En fait il n'y a qu'un seul attribut : quantity !
Je trouve cette approche null car elle conduit à la création d'une table supplémentaire et à des jointure qui seront inutiles.
Quelle approche pourrais-je utiliser pour conserver la valeur "quantity" propre à la relation entre EssentialOil et Synergy sans recourir à cette classe intermédiaire ?