Мне нужно установить отношение "один к одному", которое также должно быть общим. Может быть, вы можете посоветовать мне лучший дизайн. До сих пор я подошел к следующим моделям
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