Мне нужно установить отношение один к одному, которое также должно быть общим. Может быть, вы можете посоветовать мне лучший дизайн. Пока что я подошел к следующим моделям
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 в списке событий я хочу собрать все действия, а оттуда я хочу перейти на страницы администратора для действий. Можно ли избежать создания свойства event
в моделях действий? Есть ли лучшее решение? Было бы неплохо объединить поле events
и свойство event
в одном определении. Проект, с которым я работаю, использует Django 1.1