This repository has been archived on 2025-03-03. You can view files and clone it, but cannot push or open issues or pull requests.
facturio/accounts/models.py

36 lines
999 B
Python

from django.contrib.auth.models import AbstractUser
from django.db import models
from django.utils.translation import gettext_lazy as _
from subjects.models import Subject
class User(AbstractUser):
REQUIRED_FIELDS = ['email', 'first_name', 'last_name']
first_name = models.CharField(_('first name'), max_length=150)
last_name = models.CharField(_('last name'), max_length=150)
email = models.EmailField(_('email address'))
supplier = models.ForeignKey(
Subject,
models.PROTECT,
_('supplier'),
blank=True,
null=True,
)
customers = models.ManyToManyField(
Subject,
blank=True,
verbose_name=_('customers'),
)
class Meta:
verbose_name = _('user')
verbose_name_plural = _('users')
def _get_m2m_ids(self, field: str):
return list(getattr(self, field).values_list('id', flat=True))
def get_customers(self) -> list[int]:
return self._get_m2m_ids('customers')