54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django_core.models import AbstractBaseModel
|
|
|
|
|
|
class ParticipantModel(AbstractBaseModel):
|
|
GenderChoices = (
|
|
('Male', 'Male'),
|
|
('Female', 'Female'),
|
|
)
|
|
gender = models.CharField(verbose_name=_("gender"), max_length=255, choices=GenderChoices, default='Male')
|
|
first_name = models.CharField(verbose_name=_("first name"), max_length=255)
|
|
last_name = models.CharField(verbose_name=_("last name"), max_length=255)
|
|
birth_date = models.DateField(verbose_name=_("birth date"))
|
|
phone_number = models.CharField(verbose_name=_("phone number"), max_length=255)
|
|
|
|
def __str__(self):
|
|
return str(self.pk)
|
|
|
|
@classmethod
|
|
def _create_fake(self):
|
|
return self.objects.create(
|
|
first_name="mock",
|
|
last_name="mock",
|
|
birth_date="2025-09-19",
|
|
phone_number="998940105669",
|
|
)
|
|
|
|
class Meta:
|
|
db_table = "participant"
|
|
verbose_name = _("ParticipantModel")
|
|
verbose_name_plural = _("ParticipantModels")
|
|
|
|
|
|
class ParticipantPasportImageModel(AbstractBaseModel):
|
|
image = models.ImageField(verbose_name=_("image"), upload_to="participant_images/")
|
|
participant = models.ForeignKey(ParticipantModel, related_name="participant_pasport_image",
|
|
on_delete=models.CASCADE)
|
|
|
|
def __str__(self):
|
|
return str(self.pk)
|
|
|
|
@classmethod
|
|
def _create_fake(self):
|
|
return self.objects.create(
|
|
image="resources/static/images/default_avatar.jpg",
|
|
participant=ParticipantModel._create_fake(),
|
|
)
|
|
|
|
class Meta:
|
|
db_table = "participant_pasport_image"
|
|
verbose_name = _("ParticipantPasportImageModel")
|
|
verbose_name_plural = _("ParticipantPasportImageModels")
|