68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
# DRF Rack
|
|
# Библиотека классов расширений для Django REST Framework
|
|
#
|
|
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
|
# Все права защищены. Лицензия: MIT
|
|
|
|
"""
|
|
Описание класса Session
|
|
"""
|
|
|
|
from django.conf import settings
|
|
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from net.xeaf.rack.core import CoreModel
|
|
from net.xeaf.rack.models.mixins import CreatedAtMixin
|
|
|
|
|
|
class JournalModel(CoreModel, CreatedAtMixin):
|
|
"""
|
|
Модель журнала работы пользователей
|
|
"""
|
|
|
|
account = models.ForeignKey(
|
|
settings.AUTH_USER_MODEL,
|
|
on_delete=models.CASCADE,
|
|
null=False,
|
|
blank=False,
|
|
related_name="fk_journal_model_account",
|
|
verbose_name=_("rack.models.account"),
|
|
)
|
|
""" Аккаунт пользователя """
|
|
|
|
actual_account = models.ForeignKey(
|
|
settings.AUTH_USER_MODEL,
|
|
on_delete=models.CASCADE,
|
|
null=False,
|
|
blank=False,
|
|
related_name="fk_journal_model_actual_account",
|
|
verbose_name=_("rack.models.session_model.actual_account"),
|
|
)
|
|
""" Актуальный аккаунт пользователя """
|
|
|
|
action = models.CharField(
|
|
max_length=36,
|
|
null=False,
|
|
blank=False,
|
|
verbose_name=_("rack.models.journal_model.action"),
|
|
)
|
|
""" Действие """
|
|
|
|
|
|
|
|
class Meta:
|
|
"""
|
|
Параметры конфигурации класса
|
|
"""
|
|
# Индексы для производительности
|
|
indexes = [
|
|
models.Index(fields=["account"]),
|
|
models.Index(fields=["actual_account"]),
|
|
]
|
|
|
|
# Данные таблицы
|
|
db_table = "rack_journal"
|
|
verbose_name = _("rack.models.journal")
|
|
verbose_name_plural = _("rack.models.journal_plural")
|