- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
class Contacts(models.Model):
GENDER_CHOICES = (('Male', 'male'), ('Female', 'female'))
# Мужик должен служить в армии и пахать в поле или на заводе, а баба - варить борщи и рожать детей...
slug = models.SlugField(max_length=250, default='', blank=True)
FirstName = models.CharField(max_length=50, blank=True, null=True)
LastName = models.CharField(max_length=50, blank=True, null=True)
MiddleName = models.CharField(max_length=50, blank=True, null=True)
Photo = models.ImageField(upload_to='images/contacts/', blank=True, null=True)
Sex = models.CharField(max_length=50, choices=GENDER_CHOICES, default='Male', blank=True, null=True)
Birthday = models.DateField(blank=True, null=True)
BirthdayDay = models.CharField(blank=True, null=True, max_length=2, validators=[validators.validate_date_day])
BirthdayMonth = models.CharField(blank=True, null=True, max_length=2, validators=[validators.validate_date_month])
BirthdayYear = models.CharField(blank=True, null=True, max_length=4)
ContactPhone = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone])
ContactPhoneCode = models.ForeignKey('PhoneNumberCode', on_delete=models.SET_NULL, related_name='ContactPhoneCode', blank=True, null=True)
ContactPhoneNumber = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone_number])
ContactPhoneLocal = models.BooleanField(default=False)
WorkPhone = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone])
WorkPhoneCode = models.ForeignKey('PhoneNumberCode', on_delete=models.SET_NULL, related_name='WorkPhoneCode', blank=True, null=True)
WorkPhoneNumber = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone_number])
WorkPhoneLocal = models.BooleanField(default=False)
MobilePhone = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone])
MobilePhoneCode = models.ForeignKey('PhoneNumberCode', on_delete=models.SET_NULL, related_name='MobilePhoneCode', blank=True, null=True)
MobilePhoneNumber = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone_number])
MobilePhoneLocal = models.BooleanField(default=False)
WorkMobilePhone = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone])
WorkMobilePhoneCode = models.ForeignKey('PhoneNumberCode', on_delete=models.SET_NULL, related_name='WorkMobilePhoneCode', blank=True, null=True)
WorkMobilePhoneNumber = models.CharField(max_length=50, blank=True, null=True, validators=[validators.validate_phone_number])
WorkMobilePhoneLocal = models.BooleanField(default=False)
По Birthday была дана задача: "а сделай так, чтобы можно было выбирать не только полную дату, но и только день/только месяц/только год". А вот каким боком потребовалось выделять в отдельные поля составляющие телефонных номеров, даже для меня до сих пор загадка. Возможно, из той же оперы: "нужно, чтобы можно было вводить неполный номер". Как бы там ни было, можно было сделать отдельный custom field (в Джанго тем более для этого есть API - https://docs.djangoproject.com/en/3.2/howto/custom-model-fields/ ) или хотя бы сделать поле CharField-ом и уже в самой модели его парсить как надо (а перед перевыкладкой задампить данные и перегнать их в другой формат). Но нет, надо было нагородить еще полей под каждое место где встречалась дата. П..дец, какой же я макакой был...