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)