django-eav2/eav/decorators.py

27 lines
675 B
Python

"""
This module contains pure wrapper functions used as decorators.
Functions in this module should be simple and not involve complex logic.
"""
from django.db.models import Model
from eav import register
def register_eav(**kwargs):
"""
Registers the given model(s) classes and wrapped ``Model`` class with
Django EAV 2::
@register_eav
class Author(models.Model):
pass
"""
def _model_eav_wrapper(model_class):
if not issubclass(model_class, Model):
raise TypeError("Wrapped class must subclass Model.")
register(model_class, **kwargs)
return model_class
return _model_eav_wrapper