Общее однозначное отношение в Django

Мне нужно установить взаимно однозначное отношение, которое также должно быть общим. Может быть, вы посоветуете мне лучший дизайн. Пока я подошел к следующим моделям

class Event(models.Model):
    # skip event related fields...
    content_type      = models.ForeignKey(ContentType)
    object_id         = models.PositiveIntegerField()
    content_object    = generic.GenericForeignKey('content_type', 'object_id')

    class Meta:
        unique_together   = ('content_type', 'object_id')

class Action1(models.Model):
    # skip action1 related fields...
    events = generic.GenericRelation(Event, content_type_field='content_type', object_id_field='object_id')

    @property
    def event(self):
        return self.events.get() # <<<<<< Is this reasonable?

class Action2(models.Model):...

. В Django Admin в списке событий я хочу собрать все действия, а оттуда я хочу перейти на страницы администратора для действий. Можно ли избежать создания свойства события в моделях действий? Есть ли лучшее решение? Было бы неплохо объединить поле events и свойство event в одном определении. В проекте, с которым я работаю, используется Django 1.1

21
задан Andrei 23 October 2011 в 18:20
поделиться