Bonjour,
Tout d’abord, désolé pour le titre peu explicite, je n’ai pas trouvé mieux…
Je crée actuellement une application avec Django qui va servir à gérer des véhicules. À chacun est associé exactement trois documents, la carte grise, le contrôle technique et l’assurance. J’avais donc fait un modèle véhicule intégrant trois CharField
pour pouvoir mettre le nom de l’image. Mais j’ai rapidement remarqué que j’allais avoir besoin de rajouter l’id de la personne qui a envoyé les images et quand est-ce qu’elles ont été envoyées. J’ai donc créé un modèle à part qui met permet de gérer toutes ces données liées à un document.
class Vehicle(models.Model):
TYPE_CHOICES = (
('vpsp', 'VPSP'),
('vtp_6p', 'VTP-6P'),
('vtp_9p', 'VTP-9P')
)
type = models.CharField('type', max_length=6, choices=TYPE_CHOICES, default=TYPE_CHOICES[1][0])
registration = models.CharField('immatriculation', max_length=9, unique=True)
created_at = models.DateTimeField('créé le', auto_now=False, auto_now_add=True)
updated_at = models.DateTimeField('modifié le', auto_now=True)
class Meta:
verbose_name = 'véhicule'
def __str__(self):
return '[{}] {}'.format(self.type, self.registration)
class Document(models.Model):
REGISTRATION_CERTIFICATE = 'rc'
TECHNICAL_CONTROL = 'tc'
INSURANCE = 'in'
TYPE_CHOICES = (
(REGISTRATION_CERTIFICATE, 'Carte Grise'),
(TECHNICAL_CONTROL, 'Contrôle technique'),
(INSURANCE, 'Assurance')
)
name = models.CharField('nom', max_length=255)
uploader = models.ForeignKey('user.User', on_delete=models.CASCADE, verbose_name='utilisateur')
vehicle = models.ForeignKey('vehicle.Vehicle', on_delete=models.CASCADE, verbose_name='véhicule')
uploaded_at = models.DateTimeField('envoyé le', auto_now=False, auto_now_add=False)
Mais j’ai un problème. Comment m’assurer que j’aurais toujours un seul exemplaire de chaque document pour un véhicule donné ? Comment m’assurer que l’utilisateur modifie bien le document actuel et qu’il n’en envoi pas un nouveau ?
Je vous remercie pour votre aide !