2014-01-12 1 views
0

У меня есть модель под названием «Фото» и модель с именем «Видео». Они оба наследуют модель с именем Item, которая содержит поле time_created и item_by. Я знаю, что вы можете заказать объекты из этих двух разных моделей, используя Item.objects.all().order_by('time_created'). Тем не менее, я хотел бы заказать Фото по времени и по рейтингу по рейтингу. Я все равно хотел бы сгруппировать эти два объекта под один запрос, даже если они упорядочены по-разному, чтобы я мог отображать его на одной странице (например, сетке). Как я смогу это сделать? Спасибо!Используя наследование модели, как вы можете заказать две разные модели по-разному в Django?

ответ

0

Я знаю, что вы можете добиться чего-то подобного, переопределив дочерние модели Meta ordering. Однако, не видя своего кода модели (прокси, абстрактного и т. Д.), Я не могу точно сказать, будет ли это работать для вас.

class Item(models.Model): 
    time_created = models.DateField() 
    rank = models.IntegerField() 


class Photo(Item): 
    class Meta: 
     ordering = ['time_created'] 


class Video(Item): 
    class Meta: 
     ordering = ['rank'] 
+0

Спасибо, я дам ему попробовать в ближайшее время. Поэтому, если я вызываю Item.objects.all(), если элементы 1 и 3 являются фотографиями, а пункты 2 и 4 являются видео, элемент 1 будет создан после пункта 3, а пункт 2 будет иметь более высокий ранг, чем элемент 4? – Aurora

Смежные вопросы