Coverage for lettings/models.py: 100%
18 statements
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-21 17:46 +0000
« prev ^ index » next coverage.py v7.3.1, created at 2023-09-21 17:46 +0000
1from django.db import models
2from django.core.validators import MaxValueValidator, MinLengthValidator
5class Address(models.Model):
6 """
7 Modèle représentant une adresse.
9 Attributes:
10 number (PositiveIntegerField): Le numéro de l'adresse (entre 1 et 9999).
12 street (CharField): Le nom de la rue (max 64 caractères).
14 city (CharField): Le nom de la ville (max 64 caractères).
16 state (CharField): Le code d'État ou de province (2 caractères min).
18 zip_code (PositiveIntegerField): Le code postal (entre 1 et 99999).
20 country_iso_code (CharField): Le code ISO du pays (3 caractères min).
22 Methods:
23 __str__: Retourne une représentation sous forme
24 de chaîne de caractères de l'adresse.
26 Meta:
27 verbose_name_plural: Nom au pluriel utilisé dans l'administration.
29 """
30 number = models.PositiveIntegerField(validators=[MaxValueValidator(9999)])
31 street = models.CharField(max_length=64)
32 city = models.CharField(max_length=64)
33 state = models.CharField(max_length=2, validators=[MinLengthValidator(2)])
34 zip_code = models.PositiveIntegerField(validators=[MaxValueValidator(99999)])
35 country_iso_code = models.CharField(max_length=3, validators=[MinLengthValidator(3)])
37 def __str__(self):
38 return f'{self.number} {self.street}'
40 class Meta:
41 verbose_name_plural = "Addresses"
44class Letting(models.Model):
45 """
46 Modèle représentant une location.
48 Attributes:
49 title (CharField): Le titre de la location (max 256 caractères).
51 address (OneToOneField): L'adresse de la location
52 (relation un-à-un avec le modèle Address).
54 Methods:
55 __str__: Retourne une représentation sous forme de chaîne de caractères de la location.
57 """
58 title = models.CharField(max_length=256)
59 address = models.OneToOneField(Address, on_delete=models.CASCADE)
61 def __str__(self):
62 return self.title