Справочные модели в Django

Когда-то давно придумал милый DSL для описания таблиц-справочников (lookup tables) в моделях джанги. Это такие key-value таблицы с постоянным числом строк. Иногда хочется каждую запись представить как константу.

Например, статусы заявок:

class Status(LookupModel):
    IN_PROGRESS = LookupRecord('in_progress')
    COMPLETED = LookupRecord('completed')
    color = models.CharField(max_length=20)

Эти объекты будут доступны через статические поля класса:

in_progress = Status.objects.create(pk='in_progress', color='yellow')
order = Order.objects.create(status=Status.IN_PROGRESS)

assert Status.IN_PROGRESS == in_progress
assert Status.IN_PROGRESS == 'in_progress'
assert Status.IN_PROGRESS.color == 'yellow'
assert order.status == Status.IN_PROGRESS

Выглядит прикольно, работает через магию дескрипторов. Код LookupModel брать здесь: gist.github.com/zenwalker/e52148...