Source code for werewolf.models

__title__ = 'werewolf.models.__init__'
__version__ = '0.3'
__build__ = 0x000003
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__all__ = ('WerewolfBaseMeta', 'WerewolfBaseModel')

from django.db import models
from django.utils.translation import ugettext_lazy as _

from werewolf.models.managers import WerewolfBaseManager
from werewolf.utils import extend_werewolf_permissions
from werewolf.conf import get_setting

STATUS_CHOICES = get_setting('STATUS_CHOICES')
DEFAULT_STATUS = get_setting('DEFAULT_STATUS')
STATUS_MAX_LENGTH = get_setting('STATUS_MAX_LENGTH')

[docs]class WerewolfBaseMeta(object): """ Base Meta class of the ``WerewolfBaseModel``. Every subclass of the ``WerewolfBaseModel`` shall extend it: >>> from werewolf.models import WerewolfBaseModel, WerewolfBaseMeta >>> class NewsItem(WerewolfBaseModel): # Important! >>> # Your fields here >>> class Meta(WerewolfBaseMeta): # Important! >>> verbose_name = "News item" >>> verbose_name_plural = "News items" Alternatively you can add the ``permissions`` attribute: >>> from werewolf.utils import extend_werewolf_permissions >>> class NewsItem(WerewolfBaseModel): >>> # Your fields here >>> class Meta: >>> verbose_name = "News item" >>> verbose_name_plural = "News items" >>> permissions = extend_werewolf_permissions( >>> ('can_change_author', _("Can change author")), >>> ('can_change_editor', _("Can change editor")), >>> ) """ permissions = extend_werewolf_permissions()
[docs]class WerewolfBaseModel(models.Model): """ Base Werewolf model. If you want to have a workflow in your model (for statuses like new, draft, published, etc) you should extend this model. """ status = models.CharField(_("Status"), max_length=STATUS_MAX_LENGTH, choices=STATUS_CHOICES, \ default=DEFAULT_STATUS) objects = WerewolfBaseManager() class Meta(WerewolfBaseMeta): abstract = True
Read the Docs v: 0.3
Versions
latest
0.4.2
0.3
0.2
0.1
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.