Добрый день! Подскажите как правильно определять перекрестные ссылки на константы статуса события в данном фрагменте:
class EventManager(models.Manager):
"""Дополнение выборки событий по состоянию"""
def planned(self):
return self.filter(state='Event.STATE_PLANNED')
def completed(self):
return self.filter(state='Event.STATE_COMPLETED')
class Event(models.Model):
"""Модель события"""
# Константы статуса
STATE_PLANNED = 0
STATE_CURRENT = 1
STATE_COMPLETED = 2
STATE_CANCELED = 3
# Словарь возможных статусов события
EVENT_STATUSES = ((STATE_PLANNED, 'Запланирован'),
(STATE_CURRENT, 'Текущий'),
(STATE_COMPLETED, 'Завершен'),
(STATE_CANCELED, 'Отменен'))
text = models.CharField(verbose_name="Описание события", max_length=200)
author = models.ForeignKey(User, verbose_name="Автор")
begin_date = models.DateTimeField('Дата начала события', auto_now=True)
state = models.SmallIntegerField('Состояние', choices=EVENT_STATUSES, default=STATE_PLANNED)
objects = EventManager()
class Meta():
db_table = 'events'
verbose_name = "Событие"
verbose_name_plural = "События"
ordering = ('-begin_date',)
def __str__(self):
return (self.text.split('.')[0])[:50]
Самый простой вариант - вынести константы на уровень вверх.
Читал про питоновский вариант с определением в кавычках, но что-то не соображу как к данному фрагменту применить, а в документации не могу сейчас найти этот пункт.