Code source de lettings.models
1from django.db import models
2from django.core.validators import MaxValueValidator, MinLengthValidator
3
4
[docs]
5class Address(models.Model):
6 """
7 Modèle représentant une adresse.
8
9 Attributes:
10 number (PositiveIntegerField): Le numéro de l'adresse (entre 1 et 9999).
11
12 street (CharField): Le nom de la rue (max 64 caractères).
13
14 city (CharField): Le nom de la ville (max 64 caractères).
15
16 state (CharField): Le code d'État ou de province (2 caractères min).
17
18 zip_code (PositiveIntegerField): Le code postal (entre 1 et 99999).
19
20 country_iso_code (CharField): Le code ISO du pays (3 caractères min).
21
22 Methods:
23 __str__: Retourne une représentation sous forme
24 de chaîne de caractères de l'adresse.
25
26 Meta:
27 verbose_name_plural: Nom au pluriel utilisé dans l'administration.
28
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)])
36
37 def __str__(self):
38 return f'{self.number} {self.street}'
39
40 class Meta:
41 verbose_name_plural = "Addresses"
42
43
[docs]
44class Letting(models.Model):
45 """
46 Modèle représentant une location.
47
48 Attributes:
49 title (CharField): Le titre de la location (max 256 caractères).
50
51 address (OneToOneField): L'adresse de la location
52 (relation un-à-un avec le modèle Address).
53
54 Methods:
55 __str__: Retourne une représentation sous forme de chaîne de caractères de la location.
56
57 """
58 title = models.CharField(max_length=256)
59 address = models.OneToOneField(Address, on_delete=models.CASCADE)
60
61 def __str__(self):
62 return self.title