Кажется, вам нужны разные объекты для выполнения общих операций ...
1) В этом случае может быть лучше абстрагировать эти свойства в суперклассе ... Я имею в виду, что у вас может быть класс Event
, который определяет поле user
, а все другие ваши классы событий будут иметь подкласс это.
class Event(model.Model):
user = models.ForeignKey(User)
date = ...
class Reply(Event):
#additional fields
class Vote(Event):
#additional fields
Тогда вы сможете сделать следующее
Event.objects.order_by("date") #returns both Reply, Vote and Event
Выезд http://docs.djangoproject.com/en/1.2/topics/db/models/#id5 для получения информации о наследовании модели.
2) У вас также может быть модель Event
с общим отношением к другому объекту. Для меня это звучит чище, поскольку Vote
концептуально не является «событием». Выезд: http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#id1
В любом случае, я думаю, что ваша проблема связана с дизайном