schon/engine/core/abstract.py
Egor fureunoir Gorbunov 13e7af52aa Features: 1) Improved request processing in middleware by adding mutable QueryDict implementation; 2) Extended type annotations across various modules for enhanced type safety; 3) Refined JWT token lifetime configuration for environment-specific logic.
Fixes: 1) Addressed missing or incorrect imports and type hints with `# ty:ignore` markers; 2) Fixed search queryset error handling in filters module; 3) Resolved issues in viewsets with updated `@action` method usage.

Extra: Removed unused classes and dependencies (e.g., `BaseMutation`, `basedpyright`, and related packages); streamlined GraphQL mutation implementations; cleaned up unused arguments in model `save` methods.
2025-12-19 15:17:17 +03:00

51 lines
1.5 KiB
Python

import uuid
from typing import Collection
from django.db.models import BooleanField, Model, UUIDField
from django.utils.translation import gettext_lazy as _
from django_extensions.db.fields import CreationDateTimeField, ModificationDateTimeField
class NiceModel(Model):
id: None = None
uuid = UUIDField(
verbose_name=_("unique id"),
help_text=_("unique id is used to surely identify any database object"),
primary_key=True,
default=uuid.uuid4,
editable=False,
)
is_active = BooleanField(
default=True,
verbose_name=_("is active"),
help_text=_(
"if set to false, this object can't be seen by users without needed permission"
),
)
created = CreationDateTimeField(
_("created"), help_text=_("when the object first appeared on the database")
)
modified = ModificationDateTimeField(
_("modified"), help_text=_("when the object was last modified")
)
def save(
self,
*args,
force_insert: bool = False,
force_update: bool = False,
using: str | None = None,
update_fields: Collection[str] | None = None,
update_modified: bool = True,
) -> None: # ty:ignore[invalid-method-override]
self.update_modified = update_modified
return super().save(
force_insert=force_insert,
force_update=force_update,
using=using,
update_fields=update_fields,
)
class Meta:
abstract = True
get_latest_by = "modified"