Source code for django_celery_beat.managers

"""Model managers."""
from django.db import models
from django.db.models.query import QuerySet


[docs]class ExtendedQuerySet(QuerySet): """Base class for query sets."""
[docs] def update_or_create(self, defaults=None, **kwargs): obj, created = self.get_or_create(defaults=defaults, **kwargs) if not created: self._update_model_with_dict(obj, dict(defaults or {}, **kwargs)) return obj
def _update_model_with_dict(self, obj, fields): [setattr(obj, attr_name, attr_value) for attr_name, attr_value in fields.items()] obj.save() return obj
[docs]class ExtendedManager(models.Manager.from_queryset(ExtendedQuerySet)): """Manager with common utilities."""
[docs]class PeriodicTaskManager(ExtendedManager): """Manager for PeriodicTask model."""
[docs] def enabled(self): return self.filter(enabled=True)