Je sais que cette question a été postée plusieurs fois, mais je ne pouvais toujours pas trouver une réponse définitive à ce problème. Donc, ici je vais:Django enregistrer personnalisé avec problème ManyToManyField
class Invoice(models.Model):
program = models.ForeignKey(Program)
customer = models.ForeignKey(Customer, related_name='invoices')
participants = models.ManyToManyField(Participant, related_name='participants_set')
subtotal = models.DecimalField(max_digits=10, decimal_places=2, default='0.00', blank=True, null=False)
pst = models.DecimalField("PST", max_digits=10, decimal_places=2, default='0.00', blank=True, null=False)
gst = models.DecimalField("GST", max_digits=10, decimal_places=2, default='0.00', blank=True, null=False)
total = models.DecimalField(max_digits=10, decimal_places=2, default='0.00', blank=True, null=False)
def save(self, **kwargs):
super(Invoice, self).save(**kwargs)
items = self.participants.count()
subtotal = Decimal(self.program.fee) * items
pst = self.program.is_pst and Decimal(PST)*subtotal or Decimal('0.00')
gst = self.program.is_gst and Decimal(GST)*subtotal or Decimal('0.00')
total = (subtotal + pst) + gst
self.subtotal = subtotal
self.pst = pst
self.gst = gst
self.total = total
super(Invoice, self).save(**kwargs)
Tout fonctionne bien sauf que self.participants.count() ne fonctionne pas. Toute idée de ce qui pourrait être le problème. Toute aide très appréciée.
Quelle version de Django? Votre appel à self.participants.count() devrait fonctionner. – Harold
La méthode count génère-t-elle une exception ou donne-t-elle une valeur erronée? –