我有不同的模型,它们都有一个名为“date_created”的“DateTimeField”。我需要从所有模型中选择所有对象,按此字段“date_created”对它们进行排序并作为列表返回。
我尝试了以下方法:
模型.py
class FirstModel(models.Model):
title = models.CharField(max_length=100)
date_created = models.DateTimeField()
class SecondModel(models.Model):
title = models.CharField(max_length=100)
date_created = models.DateTimeField()
视图.py
def browse(request):
object_list = []
for model in get_models(get_app('myapp')):
object_list.append(model.objects.order_by('-date_created').all())
object_list = sorted(object_list, key=attrgetter('date_created'))
context = {'data': object_list}
return render(request, 'myapp/browse.html', context)
我收到错误“QuerySet”对象没有属性“date_created”。
这些模型具有与此问题无关的其他字段。我可以使用通用基类将所有对象放在一起(我想),但出于某种原因我使用了抽象基类。我怀疑可以使用“加入”,但我不知道该怎么做。
那么,如何按 date_created 属性对这个 object_list (来自不同模型的对象列表)进行排序?