from django.db import models from django.core.validators import MaxValueValidator class Payment(models.Model): TRANSFERT = 0 WITHDRAWAL = 1 PAYMENT_CHOICES = ( (TRANSFERT, 'Virement'), (WITHDRAWAL, 'Prélèvement'), ) amount = models.DecimalField(max_digits=9, decimal_places=2, verbose_name='Montant') period = models.PositiveIntegerField(validators=[MaxValueValidator(12)], verbose_name='Période') payment_method = models.IntegerField(choices=PAYMENT_CHOICES, verbose_name='Méthode de paiement') class Meta: verbose_name = 'paiement' def __str__(self): s = str(self.amount) + '€' if self.period: s += '%d/mois' % self.period if self.payment_method == self.TRANSFERT: s += ' (virement)' elif self.payment_method == self.WITHDRAWAL: s += ' (prélèvement)' return s