models
This commit is contained in:
45
employees/models.py
Normal file
45
employees/models.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from django.db import models
|
||||
from core.models import ContactMixin # Предполагается, что ContactMixin находится в приложении core
|
||||
|
||||
## Учет сотрудников (название приложения: employees)
|
||||
|
||||
class Position(models.Model):
|
||||
name = models.CharField(max_length=100, verbose_name="Название должности")
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Должность"
|
||||
verbose_name_plural = "Должности"
|
||||
|
||||
|
||||
class Department(models.Model):
|
||||
name = models.CharField(max_length=100, verbose_name="Название подразделения")
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Подразделение"
|
||||
verbose_name_plural = "Подразделения"
|
||||
|
||||
|
||||
class Employee(ContactMixin):
|
||||
department = models.ForeignKey(
|
||||
Department, on_delete=models.CASCADE, verbose_name="Подразделение"
|
||||
)
|
||||
position = models.ForeignKey(
|
||||
Position, on_delete=models.SET_NULL, null=True, blank=True, verbose_name="Должность"
|
||||
)
|
||||
account = models.OneToOneField(
|
||||
"users.Account", on_delete=models.CASCADE, unique=True, verbose_name="Аккаунт"
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.last_name} {self.first_name} - {self.position}"
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Сотрудник"
|
||||
verbose_name_plural = "Сотрудники"
|
||||
|
||||
Reference in New Issue
Block a user