Django / Python - 排序共享相同属性的不同Class对象?

时间:2018-03-05 13:24:23

标签: python django sorting

所以假设我在Django中有以下模型:

class Review(models.Model): 
    datetime = models.DateTimeField(("Date"), default=timezone.now)

class Rating(models.Model): 
    datetime = models.DateTimeField(("Date"), default=timezone.now)

我的观点如下:

def get_page(request, id_slug):
    context_dict = {}
    reviews = Review.objects.filter(attribute=id_slug).order_by('-datetime')
    ratings = Rating.objects.filter(attribute=id_slug).order_by('-datetime')
    context_dict['reviews'] = reviews
    context_dict['ratings'] = ratings
return render(request, 'page.html', context_dict)

我想要做的是创建一个查询集,其中包含按日期时间属性排序的Review和Rating对象,如下所示:

activity =  reviewsANDratings.order_by('-datetime')
context_dict['activity'] = activity

实现这一目标的最佳方式是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的模型基本上是相同的,或彼此的父/子,请考虑使用Django polymorphic,这将让您获得所有Review s { {1}}在一个Rating中。{/ p>

对于更多不同的模型,(或者为了更简单的实现),只需执行两个查询,就像现在一样,并将这些项合并到Python中,如下所示:

PolymorphicQuerySet